diff options
Diffstat (limited to 'win/tclWinInt.h')
-rw-r--r-- | win/tclWinInt.h | 95 |
1 files changed, 45 insertions, 50 deletions
diff --git a/win/tclWinInt.h b/win/tclWinInt.h index 2f6659c..2e80afa 100644 --- a/win/tclWinInt.h +++ b/win/tclWinInt.h @@ -12,7 +12,12 @@ #ifndef _TCLWININT #define _TCLWININT +#ifndef _TCLINT #include "tclInt.h" +#endif +#ifndef _TCLPORT +#include "tclPort.h" +#endif /* * The following specifies how much stack space TclpCheckStackSpace() @@ -22,6 +27,11 @@ #define TCL_WIN_STACK_THRESHOLD 0x8000 +#ifdef BUILD_tcl +# undef TCL_STORAGE_CLASS +# define TCL_STORAGE_CLASS DLLEXPORT +#endif + /* * Some versions of Borland C have a define for the OSVERSIONINFO for * Win32s and for NT, but not for Windows 95. @@ -35,12 +45,6 @@ #define VER_PLATFORM_WIN32_CE 3 #endif -#ifdef _WIN64 -# define TCL_I_MODIFIER "I" -#else -# define TCL_I_MODIFIER "" -#endif - /* * The following structure keeps track of whether we are using the * multi-byte or the wide-character interfaces to the operating system. @@ -79,7 +83,7 @@ typedef struct TclWinProcs { DWORD (WINAPI *getTempPathProc)(DWORD, WCHAR *); BOOL (WINAPI *getVolumeInformationProc)(CONST TCHAR *, WCHAR *, DWORD, LPDWORD, LPDWORD, LPDWORD, WCHAR *, DWORD); - HINSTANCE (WINAPI *loadLibraryExProc)(CONST TCHAR *, HANDLE, DWORD); + HINSTANCE (WINAPI *loadLibraryExProc)(const TCHAR *, HANDLE, DWORD); TCHAR (WINAPI *lstrcpyProc)(WCHAR *, CONST TCHAR *); BOOL (WINAPI *moveFileProc)(CONST TCHAR *, CONST TCHAR *); BOOL (WINAPI *removeDirectoryProc)(CONST TCHAR *); @@ -99,12 +103,13 @@ typedef struct TclWinProcs { BOOL (WINAPI *createHardLinkProc)(CONST TCHAR*, CONST TCHAR*, LPSECURITY_ATTRIBUTES); - /* deleted INT (__cdecl *utimeProc)(CONST TCHAR*, struct _utimbuf *); */ + INT (__cdecl *utimeProc)(CONST TCHAR*, struct _utimbuf *); /* These two are also NULL at start; see comment above */ HANDLE (WINAPI *findFirstFileExProc)(CONST TCHAR*, UINT, LPVOID, UINT, LPVOID, DWORD); BOOL (WINAPI *getVolumeNameForVMPProc)(CONST TCHAR*, TCHAR*, DWORD); + DWORD (WINAPI *getLongPathNameProc)(CONST TCHAR*, TCHAR*, DWORD); /* * These six are for the security sdk to get correct file @@ -131,57 +136,42 @@ typedef struct TclWinProcs { LPDWORD PrivilegeSetLength, LPDWORD GrantedAccess, LPBOOL AccessStatus); - /* - * Unicode console support. WriteConsole and ReadConsole - */ - BOOL (WINAPI *readConsoleProc)( - HANDLE hConsoleInput, - LPVOID lpBuffer, - DWORD nNumberOfCharsToRead, - LPDWORD lpNumberOfCharsRead, - LPVOID lpReserved - ); - BOOL (WINAPI *writeConsoleProc)( - HANDLE hConsoleOutput, - const VOID* lpBuffer, - DWORD nNumberOfCharsToWrite, - LPDWORD lpNumberOfCharsWritten, - LPVOID lpReserved - ); - BOOL (WINAPI *getUserName)(LPTSTR lpBuffer, LPDWORD lpnSize); + /* + * Unicode console support. WriteConsole and ReadConsole + */ + BOOL (WINAPI *readConsoleProc)(HANDLE hConsoleInput, + LPVOID lpBuffer, + DWORD nNumberOfCharsToRead, + LPDWORD lpNumberOfCharsRead, + LPVOID lpReserved); + BOOL (WINAPI *writeConsoleProc)(HANDLE hConsoleOutput, + const VOID* lpBuffer, + DWORD nNumberOfCharsToWrite, + LPDWORD lpNumberOfCharsWritten, + LPVOID lpReserved); } TclWinProcs; -MODULE_SCOPE TclWinProcs *tclWinProcs; +EXTERN TclWinProcs *tclWinProcs; /* * Declarations of functions that are not accessible by way of the * stubs table. */ -MODULE_SCOPE char TclWinDriveLetterForVolMountPoint( - CONST WCHAR *mountPoint); -MODULE_SCOPE void TclWinEncodingsCleanup(); -MODULE_SCOPE void TclWinInit(HINSTANCE hInst); -MODULE_SCOPE TclFile TclWinMakeFile(HANDLE handle); -MODULE_SCOPE Tcl_Channel TclWinOpenConsoleChannel(HANDLE handle, - char *channelName, int permissions); -MODULE_SCOPE Tcl_Channel TclWinOpenFileChannel(HANDLE handle, char *channelName, - int permissions, int appendMode); -MODULE_SCOPE Tcl_Channel TclWinOpenSerialChannel(HANDLE handle, - char *channelName, int permissions); -MODULE_SCOPE void TclWinResetInterfaceEncodings(); -MODULE_SCOPE HANDLE TclWinSerialReopen(HANDLE handle, CONST TCHAR *name, - DWORD access); -MODULE_SCOPE int TclWinSymLinkCopyDirectory(CONST TCHAR* LinkOriginal, - CONST TCHAR* LinkCopy); -MODULE_SCOPE int TclWinSymLinkDelete(CONST TCHAR* LinkOriginal, - int linkOnly); +EXTERN void TclWinEncodingsCleanup(); +EXTERN void TclWinResetInterfaceEncodings(); +EXTERN void TclWinInit(HINSTANCE hInst); +EXTERN int TclWinSymLinkCopyDirectory(CONST TCHAR* LinkOriginal, + CONST TCHAR* LinkCopy); +EXTERN int TclWinSymLinkDelete(CONST TCHAR* LinkOriginal, + int linkOnly); +EXTERN char TclWinDriveLetterForVolMountPoint(CONST WCHAR *mountPoint); #if defined(TCL_THREADS) && defined(USE_THREAD_ALLOC) -MODULE_SCOPE void TclWinFreeAllocCache(void); -MODULE_SCOPE void TclFreeAllocCache(void *); -MODULE_SCOPE Tcl_Mutex *TclpNewAllocMutex(void); -MODULE_SCOPE void * TclpGetAllocCache(void); -MODULE_SCOPE void TclpSetAllocCache(void *); +EXTERN void TclWinFreeAllocCache(void); +EXTERN void TclFreeAllocCache(void *); +EXTERN Tcl_Mutex *TclpNewAllocMutex(void); +EXTERN void *TclpGetAllocCache(void); +EXTERN void TclpSetAllocCache(void *); #endif /* TCL_THREADS */ /* Needed by tclWinFile.c and tclWinFCmd.c */ @@ -189,4 +179,9 @@ MODULE_SCOPE void TclpSetAllocCache(void *); #define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400 #endif +#include "tclIntPlatDecls.h" + +# undef TCL_STORAGE_CLASS +# define TCL_STORAGE_CLASS DLLIMPORT + #endif /* _TCLWININT */ |