Hello,
I'm looking at the dll/shell32/shlfileop.c file; the function SHFileOperationW is still huge but in order to split off sections (some are clear to see but difficult to seperate from the rest) I'd either have to use huge parameter lists, or put parts together in structs (some vars are used everywhere in combination) What is your opinion about this?
Also, I found something weird, the line at the top of the while loop: nFileOp.wFunc = ((level + 1) << 4) + FuncSwitch; seems to be equivalent to nFileOp.wFunc = (((lpFileOp->wFunc >> 4) + 1) << 4) + (lpFileOp->wFunc & FO_MASK); and nFileOp.wFunc = (((lpFileOp->wFunc >> 4) + 1) << 4) + (lpFileOp->wFunc & 0xF); and nFileOp.wFunc = (lpFileOp->wFunc & (~(0xF))) + (1 << 4) + (lpFileOp->wFunc & 0xF); and nFileOp.wFunc = (lpFileOp->wFunc & (~(0xF))) + (0x10) + (lpFileOp->wFunc & 0xF); and nFileOp.wFunc = lpFileOp->wFunc + 0x10; /* what's this 0x10? */
and in turn, no tests go off when changing that to: nFileOp.wFunc = lpFileOp->wFunc;
Am I missing something here?
regards,
Joris