>
? 0x00000001
>? 0x00001
>? 0x01
>? 0x1
>
>All are 1. However, in the next piece of code the declaration is 0x00000001. Can anyone tell me why? Will 0x1 not do the job?
>
>
#define FILE_ATTRIBUTE_READONLY 0x00000001
>#define FILE_ATTRIBUTE_HIDDEN 0x00000002
>#define FILE_ATTRIBUTE_SYSTEM 0x00000004
>
>local lnNewAttr
>lnNewAttr = iif(tlReadonly,FILE_ATTRIBUTE_READONLY,0)+;
> iif(tlHidden,FILE_ATTRIBUTE_HIDDEN,0)+;
> iif(tlSystem,FILE_ATTRIBUTE_SYSTEM,0)
>
>declare integer SetFileAttributes in Win32API ;
> string @ lpFileName, integer dwFileAttributes
>declare integer GetFileAttributes in Win32API ;
> string @ lpFileName
>
>return ( SetFileAttributes(@tcFilename, ;
> bitor(bitand(GetFileAttributes(@tcFilename),0xFFFFFFF8),;
> lnNewAttr)) = 1)
The answer is simple. I copy pasted constants from default header file and though they're same it is common to exolcitily define it in integer format (full 4 bytes).
Cetin