module win32.unicode; import std.c.windows.windows; import win32.windef; import win32.wingdi; import win32.winuser; version( UNICODE ) { extern(Windows) { alias PostThreadMessageW PostAppMessageW; alias LOGFONTW LOGFONT; alias PLOGFONTW PLOGFONT; alias NPLOGFONTW NPLOGFONT; alias LPLOGFONTW LPLOGFONT; alias ENUMLOGFONTW ENUMLOGFONT; alias LPENUMLOGFONTW LPENUMLOGFONT; alias ENUMLOGFONTEXW ENUMLOGFONTEX; alias LPENUMLOGFONTEXW LPENUMLOGFONTEX; alias EXTLOGFONTW EXTLOGFONT; alias PEXTLOGFONTW PEXTLOGFONT; alias NPEXTLOGFONTW NPEXTLOGFONT; alias LPEXTLOGFONTW LPEXTLOGFONT; alias DEVMODEW DEVMODE; alias PDEVMODEW PDEVMODE; alias NPDEVMODEW NPDEVMODE; alias LPDEVMODEW LPDEVMODE; alias OUTLINETEXTMETRICW OUTLINETEXTMETRIC; alias POUTLINETEXTMETRICW POUTLINETEXTMETRIC; alias NPOUTLINETEXTMETRICW NPOUTLINETEXTMETRIC; alias LPOUTLINETEXTMETRICW LPOUTLINETEXTMETRIC; alias POLYTEXTW POLYTEXT; alias PPOLYTEXTW PPOLYTEXT; alias NPPOLYTEXTW NPPOLYTEXT; alias LPPOLYTEXTW LPPOLYTEXT; alias GCP_RESULTSW GCP_RESULTS; alias LPGCP_RESULTSW LPGCP_RESULTS; alias OSVERSIONINFOW OSVERSIONINFO; alias POSVERSIONINFOW POSVERSIONINFO; alias LPOSVERSIONINFOW LPOSVERSIONINFO; alias LOGCOLORSPACEW LOGCOLORSPACE; alias LPLOGCOLORSPACEW LPLOGCOLORSPACE; alias WCHAR BCHAR; alias TEXTMETRICW TEXTMETRIC; alias PTEXTMETRICW PTEXTMETRIC; alias NPTEXTMETRICW NPTEXTMETRIC; alias LPTEXTMETRICW LPTEXTMETRIC; alias NEWTEXTMETRICEXW NEWTEXTMETRICEX; alias NEWTEXTMETRICW NEWTEXTMETRIC; alias PNEWTEXTMETRICW PNEWTEXTMETRIC; alias NPNEWTEXTMETRICW NPNEWTEXTMETRIC; alias LPNEWTEXTMETRICW LPNEWTEXTMETRIC; alias HW_PROFILE_INFOW HW_PROFILE_INFO; alias LPHW_PROFILE_INFOW LPHW_PROFILE_INFO; alias STARTUPINFOW STARTUPINFO; alias LPSTARTUPINFOW LPSTARTUPINFO; alias WIN32_FIND_DATAW WIN32_FIND_DATA; alias PWIN32_FIND_DATAW PWIN32_FIND_DATA; alias LPWIN32_FIND_DATAW LPWIN32_FIND_DATA; alias SOUNDSENTRYW SOUNDSENTRY; alias LPSOUNDSENTRYW LPSOUNDSENTRY; alias SERIALKEYSW SERIALKEYS; alias LPSERIALKEYSW LPSERIALKEYS; alias HIGHCONTRASTW HIGHCONTRAST; alias LPHIGHCONTRASTW LPHIGHCONTRAST; alias ICONMETRICSW ICONMETRICS; alias PICONMETRICSW PICONMETRICS; alias LPICONMETRICSW LPICONMETRICS; alias NONCLIENTMETRICSW NONCLIENTMETRICS; alias PNONCLIENTMETRICSW PNONCLIENTMETRICS; alias LPNONCLIENTMETRICSW LPNONCLIENTMETRICS; alias HELPWININFOW HELPWININFO; alias PHELPWININFOW PHELPWININFO; alias LPHELPWININFOW LPHELPWININFO; alias MULTIKEYHELPW MULTIKEYHELP; alias PMULTIKEYHELPW PMULTIKEYHELP; alias LPMULTIKEYHELPW LPMULTIKEYHELP; alias MDICREATESTRUCTW MDICREATESTRUCT; alias LPMDICREATESTRUCTW LPMDICREATESTRUCT; alias MSGBOXPARAMSW MSGBOXPARAMS; alias PMSGBOXPARAMSW PMSGBOXPARAMS; alias LPMSGBOXPARAMSW LPMSGBOXPARAMS; alias LPCMENUITEMINFOW LPCMENUITEMINFO; alias MENUITEMINFOW MENUITEMINFO; alias LPMENUITEMINFOW LPMENUITEMINFO; alias LPDLGTEMPLATEW LPDLGTEMPLATE; alias DLGTEMPLATE * LPCDLGTEMPLATEW; alias LPCDLGTEMPLATEW LPCDLGTEMPLATE; alias PDLGITEMTEMPLATEW PDLGITEMTEMPLATE; alias LPDLGITEMTEMPLATEW LPDLGITEMTEMPLATE; alias CREATESTRUCTW CREATESTRUCT; alias LPCREATESTRUCTW LPCREATESTRUCT; alias WNDCLASSW WNDCLASS; alias PWNDCLASSW PWNDCLASS; alias NPWNDCLASSW NPWNDCLASS; alias LPWNDCLASSW LPWNDCLASS; alias WNDCLASSEXW WNDCLASSEX; alias PWNDCLASSEXW PWNDCLASSEX; alias NPWNDCLASSEXW NPWNDCLASSEX; alias LPWNDCLASSEXW LPWNDCLASSEX; alias MENUTEMPLATEW MENUTEMPLATE; alias LPMENUTEMPLATEW LPMENUTEMPLATE; alias PROPENUMPROCW PROPENUMPROC; alias PROPENUMPROCEXW PROPENUMPROCEX; alias EDITWORDBREAKPROCW EDITWORDBREAKPROC; alias WINSTAENUMPROCW WINSTAENUMPROC; alias DESKTOPENUMPROCW DESKTOPENUMPROC; LPWSTR MAKEINTRESOURCE(int i) { return cast(LPWSTR)(cast(DWORD)(cast(WORD)(i))); } alias CBT_CREATEWNDW CBT_CREATEWND; alias LPCBT_CREATEWNDW LPCBT_CREATEWND; alias OLDFONTENUMPROCW OLDFONTENUMPROC; alias FONTENUMPROCW FONTENUMPROC; alias DOCINFOW DOCINFO; alias LPDOCINFOW LPDOCINFO; alias ICMENUMPROCW ICMENUMPROC; alias LoadKeyboardLayoutW LoadKeyboardLayout; alias GetKeyboardLayoutNameW GetKeyboardLayoutName; alias CreateDesktopW CreateDesktop; alias OpenDesktopW OpenDesktop; alias EnumDesktopsW EnumDesktops; alias CreateWindowStationW CreateWindowStation; alias OpenWindowStationW OpenWindowStation; alias EnumWindowStationsW EnumWindowStations; alias GetUserObjectInformationW GetUserObjectInformation; alias SetUserObjectInformationW SetUserObjectInformation; alias RegisterWindowMessageW RegisterWindowMessage; alias GetMessageW GetMessage; alias DispatchMessageW DispatchMessage; alias PeekMessageW PeekMessage; alias SendMessageW SendMessage; alias SendMessageTimeoutW SendMessageTimeout; alias SendNotifyMessageW SendNotifyMessage; alias SendMessageCallbackW SendMessageCallback; alias BroadcastSystemMessageW BroadcastSystemMessage; alias PostMessageW PostMessage; alias PostThreadMessageW PostThreadMessage; alias PostAppMessageW PostAppMessage; alias DefWindowProcW DefWindowProc; alias CallWindowProcW CallWindowProc; alias RegisterClassW RegisterClass; alias UnregisterClassW UnregisterClass; alias GetClassInfoW GetClassInfo; alias RegisterClassExW RegisterClassEx; alias GetClassInfoExW GetClassInfoEx; alias CreateWindowExW CreateWindowEx; alias CreateWindowW CreateWindow; alias CreateDialogParamW CreateDialogParam; alias CreateDialogIndirectParamW CreateDialogIndirectParam; alias DialogBoxParamW DialogBoxParam; alias DialogBoxIndirectParamW DialogBoxIndirectParam; alias SetDlgItemTextW SetDlgItemText; alias GetDlgItemTextW GetDlgItemText; alias SendDlgItemMessageW SendDlgItemMessage; alias DefDlgProcW DefDlgProc; alias CallMsgFilterW CallMsgFilter; alias RegisterClipboardFormatW RegisterClipboardFormat; alias GetClipboardFormatNameW GetClipboardFormatName; alias CharToOemW CharToOem; alias OemToCharW OemToChar; alias CharToOemBuffW CharToOemBuff; alias OemToCharBuffW OemToCharBuff; alias CharUpperW CharUpper; alias CharUpperBuffW CharUpperBuff; alias CharLowerW CharLower; alias CharLowerBuffW CharLowerBuff; alias CharNextW CharNext; alias CharPrevW CharPrev; alias IsCharAlphaW IsCharAlpha; alias IsCharAlphaNumericW IsCharAlphaNumeric; alias IsCharUpperW IsCharUpper; alias IsCharLowerW IsCharLower; alias GetKeyNameTextW GetKeyNameText; alias VkKeyScanW VkKeyScan; alias VkKeyScanExW VkKeyScanEx; alias MapVirtualKeyW MapVirtualKey; alias MapVirtualKeyExW MapVirtualKeyEx; alias LoadAcceleratorsW LoadAccelerators; alias CreateAcceleratorTableW CreateAcceleratorTable; alias CopyAcceleratorTableW CopyAcceleratorTable; alias TranslateAcceleratorW TranslateAccelerator; alias LoadMenuW LoadMenu; alias LoadMenuIndirectW LoadMenuIndirect; alias ChangeMenuW ChangeMenu; alias GetMenuStringW GetMenuString; alias InsertMenuW InsertMenu; alias AppendMenuW AppendMenu; alias ModifyMenuW ModifyMenu; alias InsertMenuItemW InsertMenuItem; alias GetMenuItemInfoW GetMenuItemInfo; alias SetMenuItemInfoW SetMenuItemInfo; alias DrawTextW DrawText; alias DrawTextExW DrawTextEx; alias GrayStringW GrayString; alias DrawStateW DrawState; alias TabbedTextOutW TabbedTextOut; alias GetTabbedTextExtentW GetTabbedTextExtent; alias SetPropW SetProp; alias GetPropW GetProp; alias RemovePropW RemoveProp; alias EnumPropsExW EnumPropsEx; alias EnumPropsW EnumProps; alias SetWindowTextW SetWindowText; alias GetWindowTextW GetWindowText; alias GetWindowTextLengthW GetWindowTextLength; alias MessageBoxW MessageBox; alias MessageBoxExW MessageBoxEx; alias MessageBoxIndirectW MessageBoxIndirect; alias GetWindowLongW GetWindowLong; alias SetWindowLongW SetWindowLong; alias GetClassLongW GetClassLong; alias SetClassLongW SetClassLong; alias FindWindowW FindWindow; alias FindWindowExW FindWindowEx; alias GetClassNameW GetClassName; alias SetWindowsHookW SetWindowsHook; alias SetWindowsHookExW SetWindowsHookEx; alias LoadBitmapW LoadBitmap; alias LoadCursorW LoadCursor; alias LoadCursorFromFileW LoadCursorFromFile; alias LoadIconW LoadIcon; alias LoadImageW LoadImage; alias LoadStringW LoadString; alias IsDialogMessageW IsDialogMessage; alias DlgDirListW DlgDirList; alias DlgDirSelectExW DlgDirSelectEx; alias DlgDirListComboBoxW DlgDirListComboBox; alias DlgDirSelectComboBoxExW DlgDirSelectComboBoxEx; alias DefFrameProcW DefFrameProc; alias DefMDIChildProcW DefMDIChildProc; alias CreateMDIWindowW CreateMDIWindow; alias WinHelpW WinHelp; alias ChangeDisplaySettingsW ChangeDisplaySettings; alias ChangeDisplaySettingsExW ChangeDisplaySettingsEx; alias EnumDisplaySettingsW EnumDisplaySettings; alias SystemParametersInfoW SystemParametersInfo; alias GetBinaryTypeW GetBinaryType; alias GetShortPathNameW GetShortPathName; alias FreeEnvironmentStringsW FreeEnvironmentStrings; alias CreateMailslotW CreateMailslot; alias lstrcmpW lstrcmp; alias lstrcmpiW lstrcmpi; alias lstrcpynW lstrcpyn; alias lstrcpyW lstrcpy; alias lstrcatW lstrcat; alias lstrlenW lstrlen; alias CreateMutexW CreateMutex; alias OpenMutexW OpenMutex; alias CreateEventW CreateEvent; alias OpenEventW OpenEvent; alias CreateSemaphoreW CreateSemaphore; alias OpenSemaphoreW OpenSemaphore; alias CreateWaitableTimerW CreateWaitableTimer; alias OpenWaitableTimerW OpenWaitableTimer; alias CreateFileMappingW CreateFileMapping; alias OpenFileMappingW OpenFileMapping; alias GetLogicalDriveStringsW GetLogicalDriveStrings; alias LoadLibraryW LoadLibrary; alias LoadLibraryExW LoadLibraryEx; alias GetModuleFileNameW GetModuleFileName; alias GetModuleHandleW GetModuleHandle; alias CreateProcessW CreateProcess; alias FatalAppExitW FatalAppExit; alias GetStartupInfoW GetStartupInfo; alias GetCommandLineW GetCommandLine; alias GetEnvironmentVariableW GetEnvironmentVariable; alias SetEnvironmentVariableW SetEnvironmentVariable; alias ExpandEnvironmentStringsW ExpandEnvironmentStrings; alias OutputDebugStringW OutputDebugString; alias FindResourceW FindResource; alias FindResourceExW FindResourceEx; alias EnumResourceTypesW EnumResourceTypes; alias EnumResourceNamesW EnumResourceNames; alias EnumResourceLanguagesW EnumResourceLanguages; alias BeginUpdateResourceW BeginUpdateResource; alias UpdateResourceW UpdateResource; alias EndUpdateResourceW EndUpdateResource; alias GlobalAddAtomW GlobalAddAtom; alias GlobalFindAtomW GlobalFindAtom; alias GlobalGetAtomNameW GlobalGetAtomName; alias AddAtomW AddAtom; alias FindAtomW FindAtom; alias GetAtomNameW GetAtomName; alias GetProfileIntW GetProfileInt; alias GetProfileStringW GetProfileString; alias WriteProfileStringW WriteProfileString; alias GetProfileSectionW GetProfileSection; alias WriteProfileSectionW WriteProfileSection; alias GetPrivateProfileIntW GetPrivateProfileInt; alias GetPrivateProfileStringW GetPrivateProfileString; alias WritePrivateProfileStringW WritePrivateProfileString; alias GetPrivateProfileSectionW GetPrivateProfileSection; alias WritePrivateProfileSectionW WritePrivateProfileSection; alias GetPrivateProfileSectionNamesW GetPrivateProfileSectionNames; alias GetPrivateProfileStructW GetPrivateProfileStruct; alias WritePrivateProfileStructW WritePrivateProfileStruct; alias GetDriveTypeW GetDriveType; alias GetSystemDirectoryW GetSystemDirectory; alias GetTempPathW GetTempPath; alias GetTempFileNameW GetTempFileName; alias GetWindowsDirectoryW GetWindowsDirectory; alias SetCurrentDirectoryW SetCurrentDirectory; alias GetCurrentDirectoryW GetCurrentDirectory; alias GetDiskFreeSpaceW GetDiskFreeSpace; alias GetDiskFreeSpaceExW GetDiskFreeSpaceEx; alias CreateDirectoryW CreateDirectory; alias CreateDirectoryExW CreateDirectoryEx; alias RemoveDirectoryW RemoveDirectory; alias GetFullPathNameW GetFullPathName; alias DefineDosDeviceW DefineDosDevice; alias QueryDosDeviceW QueryDosDevice; alias CreateFileW CreateFile; alias SetFileAttributesW SetFileAttributes; alias GetFileAttributesW GetFileAttributes; alias GetFileAttributesExW GetFileAttributesEx; alias GetCompressedFileSizeW GetCompressedFileSize; alias DeleteFileW DeleteFile; alias FindFirstFileExW FindFirstFileEx; alias FindFirstFileW FindFirstFile; alias FindNextFileW FindNextFile; alias SearchPathW SearchPath; alias CopyFileW CopyFile; alias CopyFileExW CopyFileEx; alias MoveFileW MoveFile; alias MoveFileExW MoveFileEx; alias CreateNamedPipeW CreateNamedPipe; alias GetNamedPipeHandleStateW GetNamedPipeHandleState; alias CallNamedPipeW CallNamedPipe; alias WaitNamedPipeW WaitNamedPipe; alias SetVolumeLabelW SetVolumeLabel; alias GetVolumeInformationW GetVolumeInformation; alias ClearEventLogW ClearEventLog; alias BackupEventLogW BackupEventLog; alias OpenEventLogW OpenEventLog; alias RegisterEventSourceW RegisterEventSource; alias OpenBackupEventLogW OpenBackupEventLog; alias ReadEventLogW ReadEventLog; alias ReportEventW ReportEvent; alias AccessCheckAndAuditAlarmW AccessCheckAndAuditAlarm; alias ObjectOpenAuditAlarmW ObjectOpenAuditAlarm; alias ObjectPrivilegeAuditAlarmW ObjectPrivilegeAuditAlarm; alias ObjectCloseAuditAlarmW ObjectCloseAuditAlarm; alias ObjectDeleteAuditAlarmW ObjectDeleteAuditAlarm; alias PrivilegedServiceAuditAlarmW PrivilegedServiceAuditAlarm; alias SetFileSecurityW SetFileSecurity; alias GetFileSecurityW GetFileSecurity; alias FindFirstChangeNotificationW FindFirstChangeNotification; alias IsBadStringPtrW IsBadStringPtr; alias LookupAccountSidW LookupAccountSid; alias LookupAccountNameW LookupAccountName; alias LookupPrivilegeValueW LookupPrivilegeValue; alias LookupPrivilegeNameW LookupPrivilegeName; alias LookupPrivilegeDisplayNameW LookupPrivilegeDisplayName; alias BuildCommDCBW BuildCommDCB; alias BuildCommDCBAndTimeoutsW BuildCommDCBAndTimeouts; alias CommConfigDialogW CommConfigDialog; alias GetDefaultCommConfigW GetDefaultCommConfig; alias SetDefaultCommConfigW SetDefaultCommConfig; alias GetComputerNameW GetComputerName; alias SetComputerNameW SetComputerName; alias GetUserNameW GetUserName; alias LogonUserW LogonUser; alias CreateProcessAsUserW CreateProcessAsUser; alias GetCurrentHwProfileW GetCurrentHwProfile; alias AddFontResourceW AddFontResource; alias CopyMetaFileW CopyMetaFile; alias CreateDCW CreateDC; alias CreateFontIndirectW CreateFontIndirect; alias CreateFontW CreateFont; alias CreateICW CreateIC; alias CreateMetaFileW CreateMetaFile; alias CreateScalableFontResourceW CreateScalableFontResource; alias DeviceCapabilitiesW DeviceCapabilities; alias EnumFontFamiliesExW EnumFontFamiliesEx; alias EnumFontFamiliesW EnumFontFamilies; alias EnumFontsW EnumFonts; alias GetCharWidthW GetCharWidth; alias GetCharWidth32W GetCharWidth32; alias GetCharWidthFloatW GetCharWidthFloat; alias GetCharABCWidthsW GetCharABCWidths; alias GetCharABCWidthsFloatW GetCharABCWidthsFloat; alias GetGlyphOutlineW GetGlyphOutline; alias GetMetaFileW GetMetaFile; alias GetOutlineTextMetricsW GetOutlineTextMetrics; alias GetTextExtentPointW GetTextExtentPoint; alias GetTextExtentPoint32W GetTextExtentPoint32; alias GetTextExtentExPointW GetTextExtentExPoint; alias GetCharacterPlacementW GetCharacterPlacement; alias ResetDCW ResetDC; alias RemoveFontResourceW RemoveFontResource; alias CopyEnhMetaFileW CopyEnhMetaFile; alias CreateEnhMetaFileW CreateEnhMetaFile; alias GetEnhMetaFileW GetEnhMetaFile; alias GetEnhMetaFileDescriptionW GetEnhMetaFileDescription; alias GetTextMetricsW GetTextMetrics; alias StartDocW StartDoc; alias GetObjectW GetObject; alias TextOutW TextOut; alias ExtTextOutW ExtTextOut; alias PolyTextOutW PolyTextOut; alias GetTextFaceW GetTextFace; alias GetKerningPairsW GetKerningPairs; alias GetLogColorSpaceW GetLogColorSpace; alias CreateColorSpaceW CreateColorSpace; alias GetICMProfileW GetICMProfile; alias SetICMProfileW SetICMProfile; alias EnumICMProfilesW EnumICMProfiles; alias wglUseFontBitmapsW wglUseFontBitmaps; alias wglUseFontOutlinesW wglUseFontOutlines; // !!! this is the way MS headers define it // it appears that GetEnvironmentStrings has a missing 'A' // so in unicode builds 'GetEnvironmentStrings' will NOT // call GetEnvironmentStringsW !! //alias GetEnvironmentStrings GetEnvironmentStringsA; // does this work ? alias GetEnvironmentStringsW GetEnvironmentStrings; }//extern(Windows) } else { // version( UNICODE ) //#error NOT UNICODE } // version( UNICODE )