* @implemented
*/
BOOL
-STDCALL
+WINAPI
CreateDirectoryA (
LPCSTR lpPathName,
LPSECURITY_ATTRIBUTES lpSecurityAttributes
* @implemented
*/
BOOL
-STDCALL
+WINAPI
CreateDirectoryExA (
LPCSTR lpTemplateDirectory,
LPCSTR lpNewDirectory,
* @implemented
*/
BOOL
-STDCALL
+WINAPI
CreateDirectoryW (
LPCWSTR lpPathName,
LPSECURITY_ATTRIBUTES lpSecurityAttributes
(lpSecurityAttributes ? lpSecurityAttributes->lpSecurityDescriptor : NULL));
Status = NtCreateFile (&DirectoryHandle,
- FILE_LIST_DIRECTORY | SYNCHRONIZE |
- FILE_OPEN_FOR_BACKUP_INTENT,
+ FILE_LIST_DIRECTORY | SYNCHRONIZE,
&ObjectAttributes,
&IoStatusBlock,
NULL,
FILE_ATTRIBUTE_NORMAL,
FILE_SHARE_READ | FILE_SHARE_WRITE,
FILE_CREATE,
- FILE_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT,
+ FILE_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT | FILE_OPEN_FOR_BACKUP_INTENT,
NULL,
0);
* @implemented
*/
BOOL
-STDCALL
+WINAPI
CreateDirectoryExW (
LPCWSTR lpTemplateDirectory,
LPCWSTR lpNewDirectory,
* @implemented
*/
BOOL
-STDCALL
+WINAPI
RemoveDirectoryA (
LPCSTR lpPathName
)
* @implemented
*/
BOOL
-STDCALL
+WINAPI
RemoveDirectoryW (
LPCWSTR lpPathName
)
* @implemented
*/
DWORD
-STDCALL
+WINAPI
GetFullPathNameA (
LPCSTR lpFileName,
DWORD nBufferLength,
* @implemented
*/
DWORD
-STDCALL
+WINAPI
GetFullPathNameW (
LPCWSTR lpFileName,
DWORD nBufferLength,
* @implemented
*/
DWORD
-STDCALL
+WINAPI
GetShortPathNameA (
LPCSTR longpath,
LPSTR shortpath,
* @implemented
*/
DWORD
-STDCALL
+WINAPI
GetShortPathNameW (
LPCWSTR longpath,
LPWSTR shortpath,
* @implemented
*/
DWORD
-STDCALL
+WINAPI
SearchPathA (
LPCSTR lpPath,
LPCSTR lpFileName,
LPSTR *lpFilePart
)
{
- UNICODE_STRING PathU = {0};
- UNICODE_STRING FileNameU = {0};
- UNICODE_STRING ExtensionU = {0};
- UNICODE_STRING BufferU = {0};
+ UNICODE_STRING PathU = { 0, 0, NULL };
+ UNICODE_STRING FileNameU = { 0, 0, NULL };
+ UNICODE_STRING ExtensionU = { 0, 0, NULL };
+ UNICODE_STRING BufferU = { 0, 0, NULL };
ANSI_STRING Path;
ANSI_STRING FileName;
ANSI_STRING Extension;
* @implemented
*/
DWORD
-STDCALL
+WINAPI
SearchPathW (
LPCWSTR lpPath,
LPCWSTR lpFileName,
* @implemented
*/
BOOL
-STDCALL
+WINAPI
SetDllDirectoryW(
LPCWSTR lpPathName
)
* @implemented
*/
BOOL
-STDCALL
+WINAPI
SetDllDirectoryA(
LPCSTR lpPathName /* can be NULL */
)
* @implemented
*/
DWORD
-STDCALL
+WINAPI
GetDllDirectoryW(
DWORD nBufferLength,
LPWSTR lpBuffer
* @implemented
*/
DWORD
-STDCALL
+WINAPI
GetDllDirectoryA(
DWORD nBufferLength,
LPSTR lpBuffer
/*
* @implemented
*/
-BOOL STDCALL
+BOOL WINAPI
NeedCurrentDirectoryForExePathW(LPCWSTR ExeName)
{
- return (wcschr(ExeName,
- L'\\') != NULL);
+ static const WCHAR env_name[] = {'N','o','D','e','f','a','u','l','t',
+ 'C','u','r','r','e','n','t',
+ 'D','i','r','e','c','t','o','r','y',
+ 'I','n','E','x','e','P','a','t','h',0};
+ WCHAR env_val;
+
+ /* MSDN mentions some 'registry location'. We do not use registry. */
+ FIXME("(%s): partial stub\n", debugstr_w(ExeName));
+
+ if (wcschr(ExeName, L'\\'))
+ return TRUE;
+
+ /* Check the existence of the variable, not value */
+ if (!GetEnvironmentVariableW( env_name, &env_val, 1 ))
+ return TRUE;
+
+ return FALSE;
}
/*
* @implemented
*/
-BOOL STDCALL
+BOOL WINAPI
NeedCurrentDirectoryForExePathA(LPCSTR ExeName)
{
- return (strchr(ExeName,
- '\\') != NULL);
+ WCHAR *ExeNameW;
+
+ if (!(ExeNameW = FilenameA2W(ExeName, FALSE)))
+ return TRUE;
+
+ return NeedCurrentDirectoryForExePathW(ExeNameW);
}
* shortpath=NULL: LastError=ERROR_INVALID_PARAMETER, ret=0
* shortpath="": LastError=ERROR_PATH_NOT_FOUND, ret=0
*/
-DWORD STDCALL GetLongPathNameW( LPCWSTR shortpath, LPWSTR longpath, DWORD longlen )
+DWORD WINAPI GetLongPathNameW( LPCWSTR shortpath, LPWSTR longpath, DWORD longlen )
{
#define MAX_PATHNAME_LEN 1024
LPCWSTR p;
DWORD sp = 0, lp = 0;
DWORD tmplen;
- BOOL unixabsolute = (shortpath[0] == '/');
+ BOOL unixabsolute;
WIN32_FIND_DATAW wfd;
HANDLE goit;
lstrcpynW( longpath, shortpath, longlen );
return wcslen(longpath);
}
-
+ unixabsolute = (shortpath[0] == '/');
/* check for drive letter */
if (!unixabsolute && shortpath[1] == ':' )
{
/***********************************************************************
* GetLongPathNameA (KERNEL32.@)
*/
-DWORD STDCALL GetLongPathNameA( LPCSTR shortpath, LPSTR longpath, DWORD longlen )
+DWORD WINAPI GetLongPathNameA( LPCSTR shortpath, LPSTR longpath, DWORD longlen )
{
WCHAR *shortpathW;
WCHAR longpathW[MAX_PATH];