diff options
Diffstat (limited to 'winsup/w32api/lib')
-rw-r--r-- | winsup/w32api/lib/advapi32.def | 215 | ||||
-rw-r--r-- | winsup/w32api/lib/dinput.c | 2 | ||||
-rw-r--r-- | winsup/w32api/lib/iphlpapi.def | 12 | ||||
-rw-r--r-- | winsup/w32api/lib/kernel32.c | 26 | ||||
-rw-r--r-- | winsup/w32api/lib/scrnsave.c | 4 | ||||
-rw-r--r-- | winsup/w32api/lib/test.c | 1 | ||||
-rw-r--r-- | winsup/w32api/lib/user32.def | 19 |
7 files changed, 259 insertions, 20 deletions
diff --git a/winsup/w32api/lib/advapi32.def b/winsup/w32api/lib/advapi32.def index 7cceaa1de..0c75d8efe 100644 --- a/winsup/w32api/lib/advapi32.def +++ b/winsup/w32api/lib/advapi32.def @@ -5,10 +5,25 @@ AbortSystemShutdownW@4 AccessCheck@32 AccessCheckAndAuditAlarmA@44 AccessCheckAndAuditAlarmW@44 +AccessCheckByType@44 +AccessCheckByTypeAndAuditAlarmA@64 +AccessCheckByTypeAndAuditAlarmW@64 +AccessCheckByTypeResultList@44 +AccessCheckByTypeResultListAndAuditAlarmA@64 +AccessCheckByTypeResultListAndAuditAlarmByHandleA@68 +AccessCheckByTypeResultListAndAuditAlarmByHandleW@68 +AccessCheckByTypeResultListAndAuditAlarmW@64 AddAccessAllowedAce@16 +AddAccessAllowedAceEx@20 +AddAccessAllowedObjectAce@28 AddAccessDeniedAce@16 +AddAccessDeniedAceEx@20 +AddAccessDeniedObjectAce@28 AddAce@20 AddAuditAccessAce@24 +AddAuditAccessAceEx@28 +AddAuditAccessObjectAce@36 +AddUsersToEncryptedFile@8 AdjustTokenGroups@24 AdjustTokenPrivileges@24 AllocateAndInitializeSid@44 @@ -17,34 +32,87 @@ AreAllAccessesGranted@8 AreAnyAccessesGranted@8 BackupEventLogA@8 BackupEventLogW@8 -BuildExplicitAccessWithName@20 -BuildSecurityDescriptor@36 -BuildTrusteeWithName@8 -BuildTrusteeWithSid@8 +BuildExplicitAccessWithNameA@20 +BuildExplicitAccessWithNameW@20 +BuildImpersonateExplicitAccessWithNameA@24 +BuildImpersonateExplicitAccessWithNameW@24 +BuildImpersonateTrusteeA@8 +BuildImpersonateTrusteeW@8 +BuildSecurityDescriptorA@36 +BuildSecurityDescriptorW@36 +BuildTrusteeWithNameA@8 +BuildTrusteeWithNameW@8 +BuildTrusteeWithObjectsAndNameA@24 +BuildTrusteeWithObjectsAndNameW@24 +BuildTrusteeWithObjectsAndSidA@20 +BuildTrusteeWithObjectsAndSidW@20 +BuildTrusteeWithSidA@8 +BuildTrusteeWithSidW@8 +CancelOverlappedAccess@4 +ChangeServiceConfig2A@12 +ChangeServiceConfig2W@12 ChangeServiceConfigA@44 ChangeServiceConfigW@44 +CheckTokenMembership@12 ClearEventLogA@8 ClearEventLogW@8 +CloseEncryptedFileRaw@4 CloseEventLog@4 CloseServiceHandle@4 +CloseTrace@8 +CommandLineFromMsiDescriptor@12 ControlService@12 +ControlTraceA@20 +ControlTraceW@20 +ConvertAccessToSecurityDescriptorA@20 +ConvertAccessToSecurityDescriptorW@20 +ConvertSDToStringSDRootDomainA@24 +ConvertSDToStringSDRootDomainW@24 +ConvertSecurityDescriptorToAccessA@28 +ConvertSecurityDescriptorToAccessNamedA@28 +ConvertSecurityDescriptorToAccessNamedW@28 +ConvertSecurityDescriptorToAccessW@28 +ConvertSecurityDescriptorToStringSecurityDescriptorA@20 +ConvertSecurityDescriptorToStringSecurityDescriptorW@20 +ConvertSidToStringSidA@8 +ConvertSidToStringSidW@8 +ConvertStringSDToSDRootDomainA@20 +ConvertStringSDToSDRootDomainW@20 +ConvertStringSecurityDescriptorToSecurityDescriptorA@16 +ConvertStringSecurityDescriptorToSecurityDescriptorW@16 +ConvertStringSidToSidA@8 +ConvertStringSidToSidW@8 +ConvertToAutoInheritPrivateObjectSecurity@24 CopySid@12 CreatePrivateObjectSecurity@24 +CreatePrivateObjectSecurityEx@32 CreateProcessAsUserA@44 CreateProcessAsUserW@44 +CreateProcessWithLogonW@44 +CreateRestrictedToken@36 CreateServiceA@52 CreateServiceW@52 +CreateTraceInstanceId@8 CryptAcquireContextA@20 CryptAcquireContextW@20 +CryptContextAddRef@12 CryptCreateHash@20 CryptDecrypt@24 CryptDeriveKey@20 CryptDestroyHash@4 CryptDestroyKey@4 +CryptDuplicateHash@16 +CryptDuplicateKey@16 CryptEncrypt@28 +CryptEnumProviderTypesA@24 +CryptEnumProviderTypesW@24 +CryptEnumProvidersA@24 +CryptEnumProvidersW@24 CryptExportKey@24 CryptGenKey@16 CryptGenRandom@12 +CryptGetDefaultProviderA@20 +CryptGetDefaultProviderW@20 CryptGetHashParam@20 CryptGetKeyParam@20 CryptGetProvParam@20 @@ -57,15 +125,20 @@ CryptSetHashParam@16 CryptSetKeyParam@16 CryptSetProvParam@16 CryptSetProviderA@8 +CryptSetProviderExA@16 +CryptSetProviderExW@16 CryptSetProviderW@8 CryptSignHashA@24 CryptSignHashW@24 CryptVerifySignatureA@24 CryptVerifySignatureW@24 +DecryptFileA@8 +DecryptFileW@8 DeleteAce@8 DeleteService@4 DeregisterEventSource@4 DestroyPrivateObjectSecurity@4 +DuplicateEncryptionInfoFile@8 DuplicateToken@12 DuplicateTokenEx@24 ElfBackupEventLogFileA@8 @@ -87,31 +160,66 @@ ElfRegisterEventSourceA@12 ElfRegisterEventSourceW@12 ElfReportEventA@48 ElfReportEventW@48 +EnableTrace@24 +EncryptFileA@4 +EncryptFileW@4 +EncryptionDisable@8 EnumDependentServicesA@24 EnumDependentServicesW@24 +EnumServiceGroupW@36 EnumServicesStatusA@32 +EnumServicesStatusExA@40 +EnumServicesStatusExW@40 EnumServicesStatusW@32 EqualPrefixSid@8 EqualSid@8 +FileEncryptionStatusA@8 +FileEncryptionStatusW@8 FindFirstFreeAce@8 +FreeEncryptionCertificateHashList@4 FreeSid@4 +GetAccessPermissionsForObjectA@36 +GetAccessPermissionsForObjectW@36 GetAce@12 GetAclInformation@16 +GetAuditedPermissionsFromAclA@16 +GetAuditedPermissionsFromAclW@16 +GetCurrentHwProfileA@4 +GetCurrentHwProfileW@4 +GetEffectiveRightsFromAclA@12 +GetEffectiveRightsFromAclW@12 +GetEventLogInformation@20 +GetExplicitEntriesFromAclA@12 +GetExplicitEntriesFromAclW@12 GetFileSecurityA@20 GetFileSecurityW@20 GetKernelObjectSecurity@20 GetLengthSid@4 -GetNamedSecurityInfo@32 +GetLocalManagedApplications@12 +GetManagedApplications@20 +GetMangledSiteSid@12 +GetMultipleTrusteeA@4 +GetMultipleTrusteeOperationA@4 +GetMultipleTrusteeOperationW@4 +GetMultipleTrusteeW@4 +GetNamedSecurityInfoA@32 +GetNamedSecurityInfoExA@36 +GetNamedSecurityInfoExW@36 +GetNamedSecurityInfoW@32 GetNumberOfEventLogRecords@8 GetOldestEventLogRecord@8 +GetOverlappedAccessResults@16 GetPrivateObjectSecurity@20 GetSecurityDescriptorControl@12 GetSecurityDescriptorDacl@16 GetSecurityDescriptorGroup@12 GetSecurityDescriptorLength@4 GetSecurityDescriptorOwner@12 +GetSecurityDescriptorRMControl@8 GetSecurityDescriptorSacl@16 GetSecurityInfo@32 +GetSecurityInfoExA@36 +GetSecurityInfoExW@36 GetServiceDisplayNameA@16 GetServiceDisplayNameW@16 GetServiceKeyNameA@16 @@ -120,14 +228,26 @@ GetSidIdentifierAuthority@4 GetSidLengthRequired@4 GetSidSubAuthority@8 GetSidSubAuthorityCount@4 +GetSiteDirectoryA@12 +GetSiteDirectoryW@12 +GetSiteNameFromSid@8 +GetSiteSidFromToken@4 +GetSiteSidFromUrl@4 GetTokenInformation@20 -GetTrusteeForm@4 -GetTrusteeName@4 -GetTrusteeType@4 +GetTraceEnableFlags@8 +GetTraceEnableLevel@8 +GetTraceLoggerHandle@4 +GetTrusteeFormA@4 +GetTrusteeFormW@4 +GetTrusteeNameA@4 +GetTrusteeNameW@4 +GetTrusteeTypeA@4 +GetTrusteeTypeW@4 GetUserNameA@8 GetUserNameW@8 I_ScSetServiceBitsA@20 I_ScSetServiceBitsW@20 +ImpersonateAnonymousToken@4 ImpersonateLoggedOnUser@4 ImpersonateNamedPipeClient@4 ImpersonateSelf@4 @@ -135,8 +255,13 @@ InitializeAcl@12 InitializeSecurityDescriptor@8 InitializeSid@12 InitiateSystemShutdownA@20 +InitiateSystemShutdownExA@24 +InitiateSystemShutdownExW@24 InitiateSystemShutdownW@20 +InstallApplication@4 +IsProcessRestricted@0 IsTextUnicode@12 +IsTokenRestricted@4 IsValidAcl@4 IsValidSecurityDescriptor@4 IsValidSid@4 @@ -153,7 +278,8 @@ LookupPrivilegeNameA@16 LookupPrivilegeNameW@16 LookupPrivilegeValueA@12 LookupPrivilegeValueW@12 -LookupSecurityDescriptorParts@28 +LookupSecurityDescriptorPartsA@28 +LookupSecurityDescriptorPartsW@28 LsaAddAccountRights@16 LsaAddPrivilegesToAccount@8 LsaClearAuditLog@4 @@ -161,6 +287,7 @@ LsaClose@4 LsaCreateAccount@16 LsaCreateSecret@16 LsaCreateTrustedDomain@16 +LsaCreateTrustedDomainEx@20 LsaDelete@4 LsaDeleteTrustedDomain@8 LsaEnumerateAccountRights@16 @@ -169,11 +296,14 @@ LsaEnumerateAccountsWithUserRight@16 LsaEnumeratePrivileges@20 LsaEnumeratePrivilegesOfAccount@8 LsaEnumerateTrustedDomains@20 +LsaEnumerateTrustedDomainsEx@20 LsaFreeMemory@4 LsaGetQuotasForAccount@8 +LsaGetRemoteUserName@12 LsaGetSystemAccessAccount@8 -LsaICLookupNames@28 -LsaICLookupSids@28 +LsaGetUserName@8 +LsaICLookupNames@32 +LsaICLookupSids@32 LsaLookupNames@20 LsaLookupPrivilegeDisplayName@16 LsaLookupPrivilegeName@12 @@ -184,22 +314,28 @@ LsaOpenAccount@16 LsaOpenPolicy@16 LsaOpenSecret@16 LsaOpenTrustedDomain@16 +LsaOpenTrustedDomainByName@16 +LsaQueryDomainInformationPolicy@12 LsaQueryInfoTrustedDomain@12 LsaQueryInformationPolicy@12 LsaQuerySecret@20 LsaQuerySecurityObject@12 LsaQueryTrustedDomainInfo@16 +LsaQueryTrustedDomainInfoByName@16 LsaRemoveAccountRights@20 LsaRemovePrivilegesFromAccount@12 LsaRetrievePrivateData@12 +LsaSetDomainInformationPolicy@12 LsaSetInformationPolicy@12 LsaSetInformationTrustedDomain@12 LsaSetQuotasForAccount@8 LsaSetSecret@12 LsaSetSecurityObject@12 LsaSetSystemAccessAccount@8 +LsaSetTrustedDomainInfoByName@16 LsaSetTrustedDomainInformation@16 LsaStorePrivateData@12 +MakeAbsoluteSD2@8 MakeAbsoluteSD@44 MakeSelfRelativeSD@12 MapGenericMask@8 @@ -215,6 +351,8 @@ ObjectPrivilegeAuditAlarmA@24 ObjectPrivilegeAuditAlarmW@24 OpenBackupEventLogA@8 OpenBackupEventLogW@8 +OpenEncryptedFileRawA@12 +OpenEncryptedFileRawW@12 OpenEventLogA@8 OpenEventLogW@8 OpenProcessToken@12 @@ -223,16 +361,27 @@ OpenSCManagerW@12 OpenServiceA@12 OpenServiceW@12 OpenThreadToken@16 +OpenTraceA@4 +OpenTraceW@4 PrivilegeCheck@12 PrivilegedServiceAuditAlarmA@20 PrivilegedServiceAuditAlarmW@20 +ProcessTrace@16 +QueryAllTracesA@12 +QueryAllTracesW@12 +QueryRecoveryAgentsOnEncryptedFile@8 +QueryServiceConfig2A@20 +QueryServiceConfig2W@20 QueryServiceConfigA@16 QueryServiceConfigW@16 QueryServiceLockStatusA@16 QueryServiceLockStatusW@16 QueryServiceObjectSecurity@20 QueryServiceStatus@8 +QueryServiceStatusEx@20 +QueryUsersOnEncryptedFile@8 QueryWindows31FilesMigration@4 +ReadEncryptedFileRaw@12 ReadEventLogA@28 ReadEventLogW@28 RegCloseKey@4 @@ -246,6 +395,7 @@ RegDeleteKeyA@8 RegDeleteKeyW@8 RegDeleteValueA@8 RegDeleteValueW@8 +RegDisablePredefinedCache@0 RegEnumKeyA@16 RegEnumKeyExA@32 RegEnumKeyExW@32 @@ -257,10 +407,13 @@ RegGetKeySecurity@16 RegLoadKeyA@12 RegLoadKeyW@12 RegNotifyChangeKeyValue@20 +RegOpenCurrentUser@8 RegOpenKeyA@12 RegOpenKeyExA@20 RegOpenKeyExW@20 RegOpenKeyW@12 +RegOpenUserClassesRoot@16 +RegOverridePredefKey@8 RegQueryInfoKeyA@48 RegQueryInfoKeyW@48 RegQueryMultipleValuesA@20 @@ -285,31 +438,54 @@ RegUnLoadKeyW@8 RegisterEventSourceA@8 RegisterEventSourceW@8 RegisterServiceCtrlHandlerA@8 +RegisterServiceCtrlHandlerExA@12 +RegisterServiceCtrlHandlerExW@12 RegisterServiceCtrlHandlerW@8 +RegisterTraceGuidsA@32 +RegisterTraceGuidsW@32 +RemoveTraceCallback@4 +RemoveUsersFromEncryptedFile@8 ReportEventA@36 ReportEventW@36 RevertToSelf@0 SetAclInformation@16 -SetEntriesInAcl@16 +SetEntriesInAccessListA@24 +SetEntriesInAccessListW@24 +SetEntriesInAclA@16 +SetEntriesInAclW@16 +SetEntriesInAuditListA@24 +SetEntriesInAuditListW@24 SetFileSecurityA@12 SetFileSecurityW@12 SetKernelObjectSecurity@12 -SetNamedSecurityInfo@28 +SetNamedSecurityInfoA@28 +SetNamedSecurityInfoExA@36 +SetNamedSecurityInfoExW@36 +SetNamedSecurityInfoW@28 SetPrivateObjectSecurity@20 +SetPrivateObjectSecurityEx@24 +SetSecurityDescriptorControl@12 SetSecurityDescriptorDacl@16 SetSecurityDescriptorGroup@12 SetSecurityDescriptorOwner@12 +SetSecurityDescriptorRMControl@8 SetSecurityDescriptorSacl@16 -SetSecurityInfo@@28 +SetSecurityInfo@28 +SetSecurityInfoExA@36 +SetSecurityInfoExW@36 SetServiceBits@16 SetServiceObjectSecurity@12 SetServiceStatus@8 SetThreadToken@8 SetTokenInformation@16 +SetTraceCallback@8 +SetUserFileEncryptionKey@4 StartServiceA@12 StartServiceCtrlDispatcherA@4 StartServiceCtrlDispatcherW@4 StartServiceW@12 +StartTraceA@12 +StartTraceW@12 SynchronizeWindows31FilesAndWindowsNTRegistry@16 SystemFunction001@12 SystemFunction002@12 @@ -344,7 +520,12 @@ SystemFunction030@8 SystemFunction031@8 SystemFunction032@8 SystemFunction033@8 +SystemFunction034@12 +TraceEvent@12 +TraceEventInstance@20 +TrusteeAccessToObjectA@24 +TrusteeAccessToObjectW@24 +UninstallApplication@4 UnlockServiceDatabase@4 -WinLoadTrustProvider@4 -WinSubmitCertificate@4 -WinVerifyTrust@12 +UnregisterTraceGuids@8 +WriteEncryptedFileRaw@12 diff --git a/winsup/w32api/lib/dinput.c b/winsup/w32api/lib/dinput.c index 16580fbd6..1d022a484 100644 --- a/winsup/w32api/lib/dinput.c +++ b/winsup/w32api/lib/dinput.c @@ -21,7 +21,7 @@ Nothing. */ -#if defined(__LCC__) || defined(__GNUC__) +#if defined(__LCC__) || defined(__GNUC__) || defined(__WATCOMC__) #include <windows.h> #include <objbase.h> #else diff --git a/winsup/w32api/lib/iphlpapi.def b/winsup/w32api/lib/iphlpapi.def index 294c752ab..f4b088888 100644 --- a/winsup/w32api/lib/iphlpapi.def +++ b/winsup/w32api/lib/iphlpapi.def @@ -1,9 +1,16 @@ LIBRARY "IPHLPAPI.DLL" EXPORTS +AddIPAddress@20 CreateIpForwardEntry@4 CreateIpNetEntry@4 +CreateProxyArpEntry@12 +DeleteIPAddress@4 DeleteIpForwardEntry@4 DeleteIpNetEntry@4 +DeleteProxyArpEntry@12 +EnableRouter@8 +FlushIpNetTable@4 +GetAdapterIndex@8 GetAdaptersInfo@8 GetBestInterface@8 GetBestRoute@12 @@ -18,16 +25,21 @@ GetIpNetTable@12 GetIpStatistics@4 GetNetworkParams@8 GetNumberOfInterfaces@4 +GetPerAdapterInfo@12 GetRTTAndHopCount@16 GetTcpStatistics@4 GetTcpTable@12 GetUdpStatistics@4 GetUdpTable@12 +GetUniDirectionalAdapterInfo@8 IpReleaseAddress@4 IpRenewAddress@4 +SendARP@16 +SetAdapterIpAddress@20 SetIfEntry@4 SetIpForwardEntry@4 SetIpNetEntry@4 SetIpStatistics@4 SetIpTTL@4 SetTcpEntry@4 +UnenableRouter@8 diff --git a/winsup/w32api/lib/kernel32.c b/winsup/w32api/lib/kernel32.c index c7c4b1807..d66a5064b 100644 --- a/winsup/w32api/lib/kernel32.c +++ b/winsup/w32api/lib/kernel32.c @@ -1,5 +1,7 @@ /* extern (library) versions of inline functions defined in winnt.h */ +#if defined(__GNUC__) + void* GetCurrentFiber(void) { void* ret; @@ -23,3 +25,27 @@ void* GetFiberData(void) return ret; } +#else + +void* GetCurrentFiber(void) +{ + void* res; + _asm { + mov eax, dword ptr fs:0x10 + mov res, eax + }; + return res; +} + +void* GetFiberData(void) +{ + void* res; + _asm { + mov eax, dword ptr fs:0x10 + mov eax, [eax] + mov res, eax + }; + return res; +} + +#endif /* __GNUC__ */ diff --git a/winsup/w32api/lib/scrnsave.c b/winsup/w32api/lib/scrnsave.c index 9efa5737a..53e555d7d 100644 --- a/winsup/w32api/lib/scrnsave.c +++ b/winsup/w32api/lib/scrnsave.c @@ -155,8 +155,8 @@ int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, case '-': case '/': case ' ': - default: - ; + default: + break; } } LaunchConfig(); diff --git a/winsup/w32api/lib/test.c b/winsup/w32api/lib/test.c index b109629c4..2d9284c08 100644 --- a/winsup/w32api/lib/test.c +++ b/winsup/w32api/lib/test.c @@ -56,6 +56,7 @@ #include <winsock.h> #include <ws2tcpip.h> #include <setupapi.h> +#include <aclapi.h> #ifndef __OBJC__ /* problems with BOOL */ #include <ole2.h> diff --git a/winsup/w32api/lib/user32.def b/winsup/w32api/lib/user32.def index b5acc474d..e8e3628a5 100644 --- a/winsup/w32api/lib/user32.def +++ b/winsup/w32api/lib/user32.def @@ -171,6 +171,7 @@ EnableScrollBar@12 EnableWindow@8 EndDeferWindowPos@4 EndDialog@8 +EndMenu@0 EndPaint@8 EnumChildWindows@12 EnumClipboardFormats@4 @@ -198,6 +199,9 @@ FindWindowW@8 FlashWindow@8 FrameRect@12 FreeDDElParam@8 +GetAltTabInfo@20 +GetAltTabInfoA@20 +GetAltTabInfoW@20 GetActiveWindow@0 GetAsyncKeyState@4 GetCapture@0 @@ -219,7 +223,9 @@ GetClipboardFormatNameA@12 GetClipboardFormatNameW@12 GetClipboardOwner@0 GetClipboardViewer@0 +GetComboBoxInfo@8 GetCursor@0 +GetCursorInfo@4 GetCursorPos@4 GetDC@4 GetDCEx@12 @@ -247,10 +253,14 @@ GetKeyboardLayoutNameW@4 GetKeyboardState@4 GetKeyboardType@4 GetLastActivePopup@4 +GetLastInputInfo@4 +GetListBoxInfo@4 GetMenu@4 +GetMenuBarInfo@16 GetMenuCheckMarkDimensions@0 GetMenuContextHelpId@4 GetMenuDefaultItem@12 +GetMenuInfo@8 GetMenuItemCount@4 GetMenuItemID@8 GetMenuItemInfoA@16 @@ -264,6 +274,8 @@ GetMessageExtraInfo@0 GetMessagePos@0 GetMessageTime@0 GetMessageW@16 +GetMonitorInfoA@8 +GetMonitorInfoW@8 GetNextDlgGroupItem@12 GetNextDlgTabItem@12 GetOpenClipboardWindow@0 @@ -273,6 +285,7 @@ GetProcessWindowStation@0 GetPropA@8 GetPropW@8 GetQueueStatus@4 +GetScrollBarInfo@12 GetScrollInfo@12 GetScrollPos@8 GetScrollRange@16 @@ -285,6 +298,7 @@ GetSystemMetrics@4 GetTabbedTextExtentA@20 GetTabbedTextExtentW@20 GetThreadDesktop@4 +GetTitleBarInfo@8 GetTopWindow@4 GetUpdateRect@12 GetUpdateRgn@12 @@ -295,8 +309,12 @@ GetWindow@8 GetWindowContextHelpId@4 _imp__GetWindowContextHelpId@4 GetWindowDC@4 +GetWindowInfo@8 GetWindowLongA@8 GetWindowLongW@8 +GetWindowModuleFileName@12 +GetWindowModuleFileNameA@12 +GetWindowModuleFileNameW@12 GetWindowPlacement@8 GetWindowRect@8 GetWindowRgn@8 @@ -467,6 +485,7 @@ SetMenu@8 SetMenuContextHelpId@8 _imp__SetMenuContextHelpId@8 SetMenuDefaultItem@12 +SetMenuInfo@8 SetMenuItemBitmaps@20 SetMenuItemInfoA@16 SetMenuItemInfoW@16 |