RE:Path de Directorio de Windows
!---- Prueba con estas definiciones algunas funciones solo funcionaran con un EXE de 32bits, los nombres de referencia son distintos en 16Bits. Y las estructuras requeridas también, yo hice una aplicación pequeña y me funcionó perfectamente.
! ---- Data Section ------ (Copy y Paste en Defines.clw)
UINT EQUATE(UNSIGNED)
FOURCC EQUATE(LONG)
WCHAR EQUATE(BYTE)
UCHAR EQUATE(BYTE)
CHAR EQUATE(BYTE)
BOOL EQUATE(SIGNED)
BYTE EQUATE(BYTE)
WORD EQUATE(SIGNED)
DWORD EQUATE(ULONG)
HANDLE EQUATE(UNSIGNED)
LPVOID EQUATE(ULONG)
PVOID EQUATE(ULONG)
FLOAT EQUATE(SREAL)
LPSTR EQUATE(CSTRING) !Usage:Pass the Label of the LPSTR
LPCSTR EQUATE(CSTRING) !Usage:Pass the Label of the LPCSTR
MAX_PATH EQUATE(260)
HWND EQUATE(HANDLE)
HINSTANCE EQUATE(HANDLE)
HMODULE EQUATE(HINSTANCE)
HTASK EQUATE(HANDLE)
HDC EQUATE(HANDLE)
WPARAM EQUATE(UINT)
LPARAM EQUATE(LONG)
LRESULT EQUATE(LONG)
LPBOOL EQUATE(ULONG)
LPCVOID EQUATE(ULONG)
HDIOBJ EQUATE(HANDLE)
HCOLORSPACE EQUATE(HANDLE)
HRDVR EQUATE(HANDLE)
HWAVEOUT EQUATE(HANDLE)
HWAVEIN EQUATE(HANDLE)
HACCEL EQUATE(HANDLE)
HBITMAP EQUATE(HANDLE)
HPEN EQUATE(HANDLE)
HWINSTA EQUATE(HANDLE)
HBRUSH EQUATE(HANDLE)
HRGN EQUATE(HANDLE)
HKL EQUATE(HANDLE)
HPALETTE EQUATE(HANDLE)
HFONT EQUATE(HANDLE)
HHOOK EQUATE(HANDLE)
HDRVR EQUATE(HANDLE)
HDWP EQUATE(HANDLE)
HRSRC EQUATE(HANDLE)
HSTR EQUATE(HANDLE)
HCURSOR EQUATE(HANDLE)
HICON EQUATE(HCURSOR)
HGRN EQUATE(HANDLE)
HMENU EQUATE(HANDLE)
SC_HANDLE EQUATE(HANDLE)
HDESK EQUATE(HANDLE)
HENHMETAFILE EQUATE(HANDLE)
HSZ EQUATE(WORD)
HMETAFILE EQUATE(HANDLE)
HMIDIIN EQUATE(HANDLE)
HMIDIOUT EQUATE(HANDLE)
HMMIO EQUATE(HANDLE)
HFILE EQUATE(SIGNED)
LUID EQUATE(LONG)
PLUID EQUATE(LONG)
ANYSIZE_ARRAY EQUATE(1)
PHANDLE EQUATE(HANDLE)
SPHANDLE EQUATE(HANDLE)
LPHANDLE EQUATE(HANDLE)
HGLOBAL EQUATE(HANDLE)
HLOCAL EQUATE(HANDLE)
GLOBALHANDLE EQUATE(HANDLE)
LOCALHANDLE EQUATE(HANDLE)
ATOM EQUATE(UINT)
COLORREF EQUATE(DWORD)
HDDEDATA EQUATE(DWORD)
HCONV EQUATE(DWORD)
HCONVLIST EQUATE(DWORD)
LONGREAL EQUATE(REAL)
DWORDLONG EQUATE(REAL)
WORDLONG EQUATE(REAL)
LARGE_INTEGER EQUATE(LONG)
ULARGE_INTEGER EQUATE(ULONG)
BOOLEAN EQUATE(BYTE)
VERSION EQUATE(UNSIGNED)
FILETIME GROUP,TYPE
dwLowDateTime DWORD
dwHighDateTime DWORD
END
WIN32_FIND_DATA GROUP,TYPE
dwFileAttributes DWORD
ftCreationTime LIKE(FILETIME)
ftLastAccessTime LIKE(FILETIME)
ftLastWriteTime LIKE(FILETIME)
nFileSizeHigh DWORD
FileSizeLow DWORD
dwReserved0 DWORD
dwReserved1 DWORD
cFileName CHAR,DIM(MAX_PATH)
cAlternateFileName CHAR,DIM(14)
END
SECURITY_ATTRIBUTES GROUP,TYPE
nLength DWORD
lpSecurityDescriptor LPVOID
bInheritHandle BOOL
END
!---- End Data Section ----
SECTION('Prototypes')
MAP
MODULE('Windows.DLL')
CreateDirectoryA(*LPCSTR,*SECURITY_ATTRIBUTES),BOOL,PASCAL,RAW
CreateDirectoryExA(*LPCSTR,*LPCSTR,*SECURITY_ATTRIBUTES),BOOL,PASCAL,RAW
OMIT('***',_WIDTH32_)
GetWindowsDirectory(*LPSTR, WORD),WORD,PASCAL,RAW
***
COMPILE('***',_WIDTH32_)
GetWindowsDirectory(*LPSTR,UNSIGNED),UNSIGNED,PASCAL,RAW,NAME('GetWindowsDirectoryA')
***
GetUserNameA(*LPSTR,*DWORD),BOOL,PASCAL,RAW
DeleteFileA(*LPCSTR),BOOL,PASCAL,RAW
GetSystemDir(*LPCSTR,*LPSTR),SIGNED,PASCAL,RAW
OMIT('***',_WIDTH32_)
GetSystemDirectory(*LPSTR, WORD),WORD,PASCAL,RAW
***
COMPILE('***',_WIDTH32_)
GetSystemDirectory(*LPSTR,UNSIGNED),UNSIGNED,PASCAL,RAW,NAME('GetSystemDirectoryA')
***
END
END
code
return