⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 winbase.odl

📁 The code for this article was written for version 1.0 of the Active Template Library (ATL). The cu
💻 ODL
📖 第 1 页 / 共 4 页
字号:
        );

    BOOL WINAPI LookupPrivilegeValueA(
        LPCSTR lpSystemName,
        LPCSTR lpName,
        PLUID   lpLuid
        );

    BOOL WINAPI LookupPrivilegeNameA(
        LPCSTR lpSystemName,
        PLUID   lpLuid,
        LPSTR lpName,
        LPDWORD cbName
        );

    BOOL WINAPI LookupPrivilegeDisplayNameA(
        LPCSTR lpSystemName,
        LPCSTR lpName,
        LPSTR lpDisplayName,
        LPDWORD cbDisplayName,
        LPDWORD lpLanguageId
        );

    BOOL WINAPI AllocateLocallyUniqueId(
        PLUID Luid
        );
    */

    /* Miscellaneous not implemented
    VOID WINAPI SetFileApisToOEM( VOID );

    VOID WINAPI SetFileApisToANSI( VOID );

    BOOL WINAPI AreFileApisANSI( VOID );

    BOOL WINAPI SetPriorityClass(
        HANDLE hProcess,
        DWORD dwPriorityClass
        );

    DWORD WINAPI GetPriorityClass(
        HANDLE hProcess
        );

    BOOL WINAPI IsBadReadPtr(
        CONST VOID *lp,
        UINT ucb
        );

    BOOL WINAPI IsBadWritePtr(
        LPVOID lp,
        UINT ucb
        );

    BOOL WINAPI IsBadHugeReadPtr(
        CONST VOID *lp,
        UINT ucb
        );

    BOOL WINAPI IsBadHugeWritePtr(
        LPVOID lp,
        UINT ucb
        );

    BOOL WINAPI IsBadCodePtr(
        FARPROC lpfn
        );

    BOOL WINAPI IsBadStringPtrA(
        LPCSTR lpsz,
        UINT ucchMax
        );
    */

    /* Performance counter not implemented

    BOOL WINAPI QueryPerformanceCounter(
        LARGE_INTEGER *lpPerformanceCount
        );

    BOOL WINAPI QueryPerformanceFrequency(
        LARGE_INTEGER *lpFrequency
        );
    */


}

[
uuid(54674049-3A82-101B-8181-00AA003743D3),
helpstring("Win32 Base Constants"),
dllname("NOSUCH.DLL")
]
module WinBaseConst {

    [ helpstring("GetComputerName: Maximum name length") ]
    const int MAX_COMPUTERNAME_LENGTH  = 15;

    [ helpstring("Create handle functions: Invalid handle") ]
    const long INVALID_HANDLE_VALUE  = -1;
    const long INVALID_FILE_SIZE = 0xFFFFFFFF;

    /*
    const int FILE_BEGIN          = 0;
    const int FILE_CURRENT        = 1;
    const int FILE_END            = 2;

    const DWORD TIME_ZONE_ID_INVALID = 0xFFFFFFFF;
    */

    const long WAIT_FAILED          = 0xFFFFFFFF;
    const long WAIT_OBJECT_0        = 0x00000000;

    const long WAIT_ABANDONED       = 0x00000080;
    const long WAIT_ABANDONED_0     = 0x00000080;

    const long WAIT_TIMEOUT         = 0x00000102;
    const long WAIT_IO_COMPLETION   = 0x000000C0;
    const long STILL_ACTIVE         = 0x00000103;

    const long FILE_NOTIFY_CHANGE_FILE_NAME  = 0x00000001;
    const long FILE_NOTIFY_CHANGE_DIR_NAME   = 0x00000002;
    const long FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x00000004;
    const long FILE_NOTIFY_CHANGE_SIZE       = 0x00000008;
    const long FILE_NOTIFY_CHANGE_LAST_WRITE = 0x00000010;
    const long FILE_NOTIFY_CHANGE_SECURITY   = 0x00000100;

    //
    // File creation flags must start at the high end since they
    // are combined with the attributes
    //

    const long FILE_FLAG_WRITE_THROUGH      = 0x80000000;
    const long FILE_FLAG_OVERLAPPED         = 0x40000000;
    const long FILE_FLAG_NO_BUFFERING       = 0x20000000;
    const long FILE_FLAG_RANDOM_ACCESS      = 0x10000000;
    const long FILE_FLAG_SEQUENTIAL_SCAN    = 0x08000000;
    const long FILE_FLAG_DELETE_ON_CLOSE    = 0x04000000;
    const long FILE_FLAG_BACKUP_SEMANTICS   = 0x02000000;
    const long FILE_FLAG_POSIX_SEMANTICS    = 0x01000000;

    const long CREATE_NEW           = 1;
    const long CREATE_ALWAYS        = 2;
    const long OPEN_EXISTING        = 3;
    const long OPEN_ALWAYS          = 4;
    const long TRUNCATE_EXISTING    = 5;

    const long GENERIC_READ         = 0x80000000;
    const long GENERIC_WRITE        = 0x40000000;
    const long GENERIC_EXECUTE      = 0x20000000;
    const long GENERIC_ALL          = 0x10000000;

    const long FILE_SHARE_READ          = 0x00000001;
    const long FILE_SHARE_WRITE         = 0x00000002;
    const long FILE_ATTRIBUTE_READONLY  = 0x00000001;
    const long FILE_ATTRIBUTE_HIDDEN    = 0x00000002;
    const long FILE_ATTRIBUTE_SYSTEM    = 0x00000004;
    const long FILE_ATTRIBUTE_DIRECTORY = 0x00000010;
    const long FILE_ATTRIBUTE_ARCHIVE   = 0x00000020;
    const long FILE_ATTRIBUTE_NORMAL    = 0x00000080;
    const long FILE_ATTRIBUTE_TEMPORARY = 0x00000100;
    const long FILE_ATTRIBUTE_COMPRESSED = 0x00000800;

    /*
    //
    // Define the NamedPipe definitions
    //

    //
    // Define the dwOpenMode values for CreateNamedPipe
    //

    const DWORD PIPE_ACCESS_INBOUND        = 0x00000001;
    const DWORD PIPE_ACCESS_OUTBOUND       = 0x00000002;
    const DWORD PIPE_ACCESS_DUPLEX         = 0x00000003;

    //
    // Define the Named Pipe End flags for GetNamedPipeInfo
    //

    const DWORD PIPE_CLIENT_END            = 0x00000000;
    const DWORD PIPE_SERVER_END            = 0x00000001;

    //
    // Define the dwPipeMode values for CreateNamedPipe
    //

    const DWORD PIPE_WAIT                  = 0x00000000;
    const DWORD PIPE_NOWAIT                = 0x00000001;
    const DWORD PIPE_READMODE_BYTE         = 0x00000000;
    const DWORD PIPE_READMODE_MESSAGE      = 0x00000002;
    const DWORD PIPE_TYPE_BYTE             = 0x00000000;
    const DWORD PIPE_TYPE_MESSAGE          = 0x00000004;

    //
    // Define the well known values for CreateNamedPipe nMaxInstances
    //

    const int PIPE_UNLIMITED_INSTANCES   = 255;
    */

    /*
    //
    // Define the Security Quality of Service bits to be passed
    // into CreateFile
    //

    //define SECURITY_ANONYMOUS         ( SecurityAnonymous      << 16 )
    //define SECURITY_IDENTIFICATION    ( SecurityIdentification << 16 )
    //define SECURITY_IMPERSONATION     ( SecurityImpersonation  << 16 )
    //define SECURITY_DELEGATION        ( SecurityDelegation     << 16 )

    const DWORD SECURITY_CONTEXT_TRACKING  = 0x00040000;
    const DWORD SECURITY_EFFECTIVE_ONLY    = 0x00080000;

    const DWORD SECURITY_SQOS_PRESENT      = 0x00100000;
    const DWORD SECURITY_VALID_SQOS_FLAGS  = 0x001F0000;
    */

    //
    //  File structures
    //

    /*
    typedef struct _OVERLAPPED {
        DWORD   Internal;
        DWORD   InternalHigh;
        DWORD   Offset;
        DWORD   OffsetHigh;
        HANDLE  hEvent;
    } OVERLAPPED, *LPOVERLAPPED;
    */

    /*
    typedef struct _SECURITY_ATTRIBUTES {
        DWORD nLength;
        LPVOID lpSecurityDescriptor;
        BOOL bInheritHandle;
    } SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
    */

    /*
    typedef struct _PROCESS_INFORMATION {
        HANDLE hProcess;
        HANDLE hThread;
        DWORD dwProcessId;
        DWORD dwThreadId;
    } PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION;
    */

    //
    //  File System time stamps are represented with the following structure:
    //

    /*
    typedef struct _FILETIME {
        DWORD dwLowDateTime;
        DWORD dwHighDateTime;
    } FILETIME, *PFILETIME, *LPFILETIME;
    */

    //
    // System time is represented with the following structure:
    //

    /*
    typedef struct _SYSTEMTIME {
        WORD wYear;
        WORD wMonth;
        WORD wDayOfWeek;
        WORD wDay;
        WORD wHour;
        WORD wMinute;
        WORD wSecond;
        WORD wMilliseconds;
    } SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;
    */

    /*
    typedef DWORD (WINAPI *PTHREAD_START_ROUTINE)(
        LPVOID lpThreadParameter
        );
    typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;

    typedef RTL_CRITICAL_SECTION CRITICAL_SECTION;
    typedef PRTL_CRITICAL_SECTION PCRITICAL_SECTION;
    typedef PRTL_CRITICAL_SECTION LPCRITICAL_SECTION;

    typedef RTL_CRITICAL_SECTION_DEBUG CRITICAL_SECTION_DEBUG;
    typedef PRTL_CRITICAL_SECTION_DEBUG PCRITICAL_SECTION_DEBUG;
    typedef PRTL_CRITICAL_SECTION_DEBUG LPCRITICAL_SECTION_DEBUG;

    #ifdef _X86_
    typedef PLDT_ENTRY LPLDT_ENTRY;
    #else
    typedef LPVOID LPLDT_ENTRY;
    #endif

    //define MUTEX_MODIFY_STATE MUTANT_QUERY_STATE
    //define MUTEX_ALL_ACCESS MUTANT_ALL_ACCESS

    /*
    typedef struct _SYSTEM_INFO {
        DWORD dwOemId;
        DWORD dwPageSize;
        LPVOID lpMinimumApplicationAddress;
        LPVOID lpMaximumApplicationAddress;
        DWORD dwActiveProcessorMask;
        DWORD dwNumberOfProcessors;
        DWORD dwProcessorType;
        DWORD dwAllocationGranularity;
        DWORD dwReserved;
    } SYSTEM_INFO, *LPSYSTEM_INFO;
    */

    /*
    typedef struct _MEMORYSTATUS {
        DWORD dwLength;
        DWORD dwMemoryLoad;
        DWORD dwTotalPhys;
        DWORD dwAvailPhys;
        DWORD dwTotalPageFile;
        DWORD dwAvailPageFile;
        DWORD dwTotalVirtual;
        DWORD dwAvailVirtual;
    } MEMORYSTATUS, *LPMEMORYSTATUS;
    */

    /*
    // dwCreationFlag values

    const DWORD DEBUG_PROCESS              = 0x00000001;
    const DWORD DEBUG_ONLY_THIS_PROCESS    = 0x00000002;

    const DWORD CREATE_SUSPENDED           = 0x00000004;

    const DWORD DETACHED_PROCESS           = 0x00000008;

    const DWORD CREATE_NEW_CONSOLE         = 0x00000010;

    const DWORD NORMAL_PRIORITY_CLASS      = 0x00000020;
    const DWORD IDLE_PRIORITY_CLASS        = 0x00000040;
    const DWORD HIGH_PRIORITY_CLASS        = 0x00000080;
    const DWORD REALTIME_PRIORITY_CLASS    = 0x00000100;

    const DWORD CREATE_NEW_PROCESS_GROUP   = 0x00000200;
    const DWORD CREATE_UNICODE_ENVIRONMENT = 0x00000400;

    const DWORD CREATE_SEPARATE_WOW_VDM    = 0x00000800;

    const DWORD CREATE_DEFAULT_ERROR_MODE  = 0x04000000;
    const DWORD CREATE_NO_WINDOW           = 0x08000000;

    //define THREAD_PRIORITY_LOWEST         THREAD_BASE_PRIORITY_MIN
    //define THREAD_PRIORITY_BELOW_NORMAL   (THREAD_PRIORITY_LOWEST+1)
    //define THREAD_PRIORITY_NORMAL         0
    //define THREAD_PRIORITY_HIGHEST        THREAD_BASE_PRIORITY_MAX
    //define THREAD_PRIORITY_ABOVE_NORMAL   (THREAD_PRIORITY_HIGHEST-1)
    //define THREAD_PRIORITY_ERROR_RETURN   (MAXLONG)

    //define THREAD_PRIORITY_TIME_CRITICAL  THREAD_BASE_PRIORITY_LOWRT
    //define THREAD_PRIORITY_IDLE           THREAD_BASE_PRIORITY_IDLE
    */

    /*
    // Debug APIs
    //
    const int EXCEPTION_DEBUG_EVENT      = 1;
    const int CREATE_THREAD_DEBUG_EVENT  = 2;
    const int CREATE_PROCESS_DEBUG_EVENT = 3;
    const int EXIT_THREAD_DEBUG_EVENT    = 4;
    const int EXIT_PROCESS_DEBUG_EVENT   = 5;
    const int LOAD_DLL_DEBUG_EVENT       = 6;
    const int UNLOAD_DLL_DEBUG_EVENT     = 7;
    const int OUTPUT_DEBUG_STRING_EVENT  = 8;
    const int RIP_EVENT                  = 9;
    */

    /*
    typedef struct _EXCEPTION_DEBUG_INFO {
        EXCEPTION_RECORD ExceptionRecord;
        DWORD dwFirstChance;
    } EXCEPTION_DEBUG_INFO, *LPEXCEPTION_DEBUG_INFO;
    */

    /*
    typedef struct _CREATE_THREAD_DEBUG_INFO {
        HANDLE hThread;
        LPVOID lpThreadLocalBase;
        LPTHREAD_START_ROUTINE lpStartAddress;
    } CREATE_THREAD_DEBUG_INFO, *LPCREATE_THREAD_DEBUG_INFO;
    */

    /*
    typedef struct _CREATE_PROCESS_DEBUG_INFO {
        HANDLE hFile;
        HANDLE hProcess;
        HANDLE hThread;
        LPVOID lpBaseOfImage;
        DWORD dwDebugInfoFileOffset;
        DWORD nDebugInfoSize;
        LPVOID lpThreadLocalBase;
        LPTHREAD_START_ROUTINE lpStartAddress;
        LPVOID lpImageName;
        WORD fUnicode;
    } CREATE_PROCESS_DEBUG_INFO, *LPCREATE_PROCESS_DEBUG_INFO;
    */

    /*
    typedef struct _EXIT_THREAD_DEBUG_INFO {
        DWORD dwExitCode;
    } EXIT_THREAD_DEBUG_INFO, *LPEXIT_THREAD_DEBUG_INFO;
    */

    /*
    typedef struct _EXIT_PROCESS_DEBUG_INFO {
        DWORD dwExitCode;
    } EXIT_PROCESS_DEBUG_INFO, *LPEXIT_PROCESS_DEBUG_INFO;
    */

    /*
    typedef struct _LOAD_DLL_DEBUG_INFO {
        HANDLE hFile;
        LPVOID lpBaseOfDll;
        DWORD dwDebugInfoFileOffset;
        DWORD nDebugInfoSize;
        LPVOID lpImageName;
        WORD fUnicode;
    } LOAD_DLL_DEBUG_INFO, *LPLOAD_DLL_DEBUG_INFO;
    */

    /*
    typedef struct _UNLOAD_DLL_DEBUG_INFO {
        LPVOID lpBaseOfDll;
    } UNLOAD_DLL_DEBUG_INFO, *LPUNLOAD_DLL_DEBUG_INFO;
    */

    /*
    typedef struct _OUTPUT_DEBUG_STRING_INFO {
        LPSTR lpDebugStringData;
        WORD fUnicode;
        WORD nDebugStringLength;
    } OUTPUT_DEBUG_STRING_INFO, *LPOUTPUT_DEBUG_STRING_INFO;
    */

    /*
    typedef struct _RIP_INFO {
        DWORD dwError;
        DWORD dwType;
    } RIP_INFO, *LPRIP_INFO;
    */


    /*
    typedef struct _DEBUG_EVENT {
        DWORD dwDebugEventCode;
        DWORD dwProcessId;
        DWORD dwThreadId;
        union {
            EXCEPTION_DEBUG_INFO Exception;
            CREATE_THREAD_DEBUG_INFO CreateThread;
            CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
            EXIT_THREAD_DEBUG_INFO ExitThread;
            EXIT_THREAD_DEBUG_INFO ExitProcess;
            LOAD_DLL_DEBUG_INFO LoadDll;
            UNLOAD_DLL_DEBUG_INFO UnloadDll;
            OUTPUT_DEBUG_STRING_INFO DebugString;
            RIP_INFO RipInfo;
        } u;
    } DEBUG_EVENT, *LPDEBUG_EVENT;
    */

    /*
    typedef PCONTEXT LPCONTEXT;
    typedef PEXCEPTION_RECORD LPEXCEPTION_RECORD;
    typedef PEXCEPTION_POINTERS LPEXCEPTION_POINTERS;
    */

    // GetDriveType return values
    [ helpstring("GetDriveType: Unknown drive") ]
    const int DRIVE_UNKNOWN     = 0;
    [ helpstring("GetDriveType: Invalid root drive") ]
    const int DRIVE_NO_ROOT_DIR = 1;
    [ helpstring("GetDriveType: Removable drive") ]
    const int DRIVE_REMOVABLE   = 2;
    [ helpstring("GetDriveType: Fixed drive") ]
    const int DRIVE_FIXED       = 3;
    [ helpstring("GetDriveType: Remote drive") ]
    const int DRIVE_REMOTE      = 4;
    [ helpstring("GetDriveType: CD-ROM drive") ]
    const int DRIVE_CDROM       = 5;
    [ helpstring("GetDriveType: RAM disk") ]
    const int DRIVE_RAMDISK     = 6;

    /*
    const WORD FILE_TYPE_UNKNOWN  = 0x0000;
    const WORD FILE_TYPE_DISK     = 0x0001;
    const WORD FILE_TYPE_CHAR     = 0x0002;
    const WORD FILE_TYPE_PIPE     = 0x0003;
    const WORD FILE_TYPE_REMOTE   = 0x8000;


    const int STD_INPUT_HANDLE    = -10;
    const int STD_OUTPUT_HANDLE   = -11;
    const int STD_ERROR_HANDLE    = -12;

    const DWORD NMPWAIT_WAIT_FOREVER           = 0xffffffff;
    const DWORD NMPWAIT_NOWAIT                 = 0x00000001;
    const DWORD NMPWAIT_USE_DEFAULT_WAIT       = 0x00000000;

    //define FS_CASE_IS_PRESERVED           FILE_CASE_PRESERVED_NAMES
    //define FS_CASE_SENSITIVE              FILE_CASE_SENSITIVE_SEARCH
    //define FS_UNICODE_STORED_ON_DISK      FILE_UNICODE_ON_DISK
    //define FS_PERSISTENT_ACLS             FILE_PERSISTENT_ACLS
    //define FS_VOL_IS_COMPRESSED           FILE_VOLUME_IS_COMPRESSED
    //define FS_FILE_COMPRESSION            FILE_FILE_COMPRESSION
    */

    [ helpstring("File mapping: Copy on write access") ]
    const long FILE_MAP_COPY        = 0x00000001; // SECTION_QUERY
    [ helpstring("File mapping: Read-write access") ]
    const long FILE_MAP_WRITE       = 0x00000002; // SECTION_MAP_WRITE
    [ helpstring("File mapping: Read-only access") ]
    const long FILE_MAP_READ        = 0x00000004; // SECTION_MAP_READ
    [ helpstring("File mapping: Read-write access") ]
    const long FILE_MAP_ALL_ACCESS  = 0x000F001F; // SECTION_ALL_ACCESS

    [ helpstring("File mapping: Read-only access to committed pages") ]
    const long PAGE_READONLY        = 0x02;
    [ helpstring("File mapping: Read-write access to committed pages") ]
    const long PAGE_READWRITE       = 0x04;
    [ helpstring("File mapping: Copy-on-write access to committed pages") ]
    const long PAGE_WRITECOPY       = 0x08;

    /*
    const long SEC_IMAGE            = 0x01000000;
    const long SEC_RESERVE          = 0x04000000;
    const long SEC_COMMIT           = 0x08000000;
    const long SEC_NOCACHE          = 0x10000000;

    const int OFS_MAXPATHNAME       = 128;
    */

}
#endif // WIN32

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -