diff --git a/COREDLL/COREDLL.vcxproj b/COREDLL/COREDLL.vcxproj index 622c779..32700c4 100644 --- a/COREDLL/COREDLL.vcxproj +++ b/COREDLL/COREDLL.vcxproj @@ -260,12 +260,14 @@ Create + + diff --git a/COREDLL/COREDLL.vcxproj.filters b/COREDLL/COREDLL.vcxproj.filters index db9da89..c3c05a2 100644 --- a/COREDLL/COREDLL.vcxproj.filters +++ b/COREDLL/COREDLL.vcxproj.filters @@ -83,6 +83,12 @@ Source Files + + Source Files + + + Source Files + diff --git a/COREDLL/Exports.def b/COREDLL/Exports.def index ba40897..378c9ce 100644 --- a/COREDLL/Exports.def +++ b/COREDLL/Exports.def @@ -1,12 +1,52 @@ LIBRARY COREDLL EXPORTS + ; commctrl_wcecl.cpp + ImageList_Add = ImageList_Add_WCECL @738 + ImageList_AddMasked = ImageList_AddMasked_WCECL @739 + ImageList_BeginDrag = ImageList_BeginDrag_WCECL @740 + ImageList_Create = ImageList_Create_WCECL @742 + ImageList_Destroy = ImageList_Destroy_WCECL @743 + ImageList_DragEnter = ImageList_DragEnter_WCECL @744 + ImageList_DragLeave = ImageList_DragLeave_WCECL @745 + ImageList_DragMove = ImageList_DragMove_WCECL @746 + ImageList_DragShowNolock = ImageList_DragShowNolock_WCECL @747 + ImageList_Draw = ImageList_Draw_WCECL @748 + ImageList_DrawEx = ImageList_DrawEx_WCECL @749 + ImageList_DrawIndirect = ImageList_DrawIndirect_WCECL @750 + ImageList_EndDrag = ImageList_EndDrag_WCECL @751 + ImageList_GetBkColor = ImageList_GetBkColor_WCECL @752 + ImageList_GetDragImage = ImageList_GetDragImage_WCECL @753 + ImageList_GetIcon = ImageList_GetIcon_WCECL @754 + ImageList_GetIconSize = ImageList_GetIconSize_WCECL @755 + ImageList_GetImageCount = ImageList_GetImageCount_WCECL @756 + ImageList_GetImageInfo = ImageList_GetImageInfo_WCECL @757 + ImageList_LoadImage = ImageList_LoadImage_WCECL @758 + ImageList_Merge = ImageList_Merge_WCECL @759 + ImageList_Remove = ImageList_Remove_WCECL @760 + ImageList_Replace = ImageList_Replace_WCECL @761 + ImageList_ReplaceIcon = ImageList_ReplaceIcon_WCECL @762 + ImageList_SetBkColor = ImageList_SetBkColor_WCECL @763 + ImageList_SetDragCursorImage = ImageList_SetDragCursorImage_WCECL @764 + ImageList_SetIconSize = ImageList_SetIconSize_WCECL @765 + ImageList_SetOverlayImage = ImageList_SetOverlayImage_WCECL @766 + ImageList_Copy = ImageList_Copy_WCECL @767 + ImageList_Duplicate = ImageList_Duplicate_WCECL @768 + ImageList_SetImageCount = ImageList_SetImageCount_WCECL @769 + + ; dbgapi_wcecl.cpp + OutputDebugStringW = OutputDebugStringW_WCECL @541 + ; excpt_wcecl.cpp _except_handler4_common = _except_handler4_common_WCECL @87 _XcptFilter = _XcptFilter_WCECL @1645 __report_gsfailure = __report_gsfailure_WCECL @1876 ; imm_wcecl.cpp + ImmAssociateContext = ImmAssociateContext_WCECL @770 + ImmGetCompositionStringW = ImmGetCompositionStringW_WCECL @781 + ImmGetContext = ImmGetContext_WCECL @783 + ImmReleaseContext = ImmReleaseContext_WCECL @803 ImmSetHotKey = ImmSetHotKey_WCECL @812 ; mmsystem_wcecl.cpp @@ -14,7 +54,6 @@ EXPORTS ; other.cpp DeleteAndRenameFile = DeleteAndRenameFile_WCECL @183 - WideCharToMultiByte = WideCharToMultiByte_WCECL @197 GetLocaleInfoW = GetLocaleInfoW_WCECL @200 GetTimeFormatW = GetTimeFormatW_WCECL @202 GetDateFormatW = GetDateFormatW_WCECL @203 @@ -24,11 +63,19 @@ EXPORTS RasHangup = RasHangup_WCECL @343 RasHangUp = RasHangUp_WCECL @344 EventModify = EventModify_WCECL @494 + GetLastError = GetLastError_WCECL @516 + SetLastError = SetLastError_WCECL @517 TlsCall = TlsCall_WCECL @520 + GetProcessVersion = GetProcessVersion_WCECL @536 GetOwnerProcess = GetOwnerProcess_WCECL @606 sprintf = sprintf_WCECL @719 vfwprintf = vfwprintf_WCECL @721 fwprintf = fwprintf_WCECL @867 + GetSystemMetrics = GetSystemMetrics_WCECL @885 + GetSysColor = GetSysColor_WCECL @889 + SetTextColor = SetTextColor_WCECL @924 + GetSysColorBrush = GetSysColorBrush_WCECL @937 + DrawTextW = DrawTextW_WCECL @945 delete = delete_WCECL @1094 new = new_WCECL @1095 _snwprintf = _snwprintf_WCECL @1096 @@ -67,6 +114,10 @@ EXPORTS GetStdioPathW = GetStdioPathW_WCECL @1149 SetStdioPathW = SetStdioPathW_WCECL @1150 + ; stringapiset_wcecl.cpp + WideCharToMultiByte = WideCharToMultiByte_WCECL @197 + GetStringTypeExW = GetStringTypeExW_WCECL @217 + ; strsafe_wcecl.cpp StringCchCopyW = StringCchCopyW_WCECL @1689 StringCchCopyExW = StringCchCopyExW_WCECL @1691 @@ -80,6 +131,10 @@ EXPORTS StringCchLengthW = StringCchLengthW_WCECL @1748 ; winbase_wcecl.cpp + InitializeCriticalSection = InitializeCriticalSection_WCECL @2 + DeleteCriticalSection = DeleteCriticalSection_WCECL @3 + EnterCriticalSection = EnterCriticalSection_WCECL @4 + LeaveCriticalSection = LeaveCriticalSection_WCECL @5 TlsGetValue = TlsGetValue_WCECL @15 TlsSetValue = TlsSetValue_WCECL @16 CompareFileTime = CompareFileTime_WCECL @18 @@ -91,6 +146,8 @@ EXPORTS LocalAlloc = LocalAlloc_WCECL @33 LocalReAlloc = LocalReAlloc_WCECL @34 LocalFree = LocalFree_WCECL @36 + HeapFree = HeapFree_WCECL @49 + GetProcessHeap = GetProcessHeap_WCECL @50 CreateDirectoryW = CreateDirectoryW_WCECL @160 RemoveDirectoryW = RemoveDirectoryW_WCECL @161 MoveFileW = MoveFileW_WCECL @163 @@ -102,6 +159,7 @@ EXPORTS SetFileAttributesW = SetFileAttributesW_WCECL @169 ReadFile = ReadFile_WCECL @170 WriteFile = WriteFile_WCECL @171 + GetFileSize = GetFileSize_WCECL @172 SetFilePointer = SetFilePointer_WCECL @173 FlushFileBuffers = FlushFileBuffers_WCECL @175 GetFileTime = GetFileTime_WCECL @176 @@ -131,18 +189,28 @@ EXPORTS GetTickCount = GetTickCount_WCECL @535 GetModuleFileNameW = GetModuleFileNameW_WCECL @537 TerminateProcess = TerminateProcess_WCECL @544 + CreateFileMappingW = CreateFileMappingW_WCECL @548 + MapViewOfFile = MapViewOfFile @549 + UnmapViewOfFile = UnmapViewOfFile_WCECL @550 CloseHandle = CloseHandle_WCECL @553 LoadStringW = LoadStringW_WCECL @874 GetModuleHandleW = GetModuleHandleW_WCECL @1177 + GlobalAddAtomW = GlobalAddAtomW_WCECL @1519 CeGenRandom = CeGenRandom_WCECL @1601 + MulDiv = MulDiv_WCECL @1877 ; windows_wcecl.cpp GetMouseMovePoints = GetMouseMovePoints_WCECL @820 EnumFontFamiliesW = EnumFontFamiliesW_WCECL @965 ; wingdi_wcecl.cpp + GetTextExtentExPointW = GetTextExtentExPointW_WCECL @897 + GetTextMetricsW = GetTextMetricsW_WCECL @898 + CreateBitmap = CreateBitmap_WCECL @901 CreateCompatibleBitmap = CreateCompatibleBitmap_WCECL @902 BitBlt = BitBlt_WCECL @903 + RestoreDC = RestoreDC_WCECL @907 + SaveDC = SaveDC_WCECL @908 CreateCompatibleDC = CreateCompatibleDC_WCECL @910 DeleteDC = DeleteDC_WCECL @911 DeleteObject = DeleteObject_WCECL @912 @@ -150,18 +218,50 @@ EXPORTS GetObjectW = GetObjectW_WCECL @918 GetStockObject = GetStockObject_WCECL @919 SelectObject = SelectObject_WCECL @921 + SetBkColor = SetBkColor_WCECL @922 + SetBkMode = SetBkMode_WCECL @923 + CreatePen = CreatePen_WCECL @926 + CreatePenIndirect = CreatePenIndirect_WCECL @930 CreateSolidBrush = CreateSolidBrush_WCECL @931 DrawFocusRect = DrawFocusRect_WCECL @933 FillRect = FillRect_WCECL @935 + GetPixel = GetPixel_WCECL @936 + PatBlt = PatBlt_WCECL @938 + Polygon = Polygon_WCECL @939 + Polyline = Polyline_WCECL @940 + Rectangle = Rectangle_WCECL @941 + SetBrushOrgEx = SetBrushOrgEx_WCECL @943 SetPixel = SetPixel_WCECL @944 + GetNearestColor = GetNearestColor_WCECL @952 + RealizePalette = RealizePalette_WCECL @953 + SelectPalette = SelectPalette_WCECL @954 EndDoc = EndDoc_WCECL @959 EndPage = EndPage_WCECL @960 PlayEnhMetaFile = PlayEnhMetaFile_WCECL @961 SetAbortProc = SetAbortProc_WCECL @962 StartDocW = StartDocW_WCECL @963 StartPage = StartPage_WCECL @964 + CombineRgn = CombineRgn_WCECL @968 + CreateRectRgnIndirect = CreateRectRgnIndirect_WCECL @969 GetClipBox = GetClipBox_WCECL @971 + IntersectClipRect = IntersectClipRect_WCECL @975 + SelectClipRgn = SelectClipRgn_WCECL @979 + CreateRectRgn = CreateRectRgn_WCECL @980 + SetViewportOrgEx = SetViewportOrgEx_WCECL @983 LineTo = LineTo_WCECL @1652 + SetTextAlign = SetTextAlign_WCECL @1654 + GetTextAlign = GetTextAlign_WCECL @1655 + StretchDIBits = StretchDIBits_WCECL @1667 + GradientFill = GradientFill_WCECL @1763 + SetLayout = SetLayout_WCECL @1890 + GetLayout = GetLayout_WCECL @1891 + + ; winnls_wcecl.cpp + LCMapStringW = LCMapStringW_WCECL @199 + GetNumberFormatW = GetNumberFormatW_WCECL @204 + GetSystemDefaultLangID = GetSystemDefaultLangID_WCECL @211 + GetSystemDefaultLCID = GetSystemDefaultLCID_WCECL @213 + GetUserDefaultLCID = GetUserDefaultLCID_WCECL @215 ; winreg_wcecl.cpp RegCloseKey = RegCloseKey_WCECL @455 @@ -173,17 +273,29 @@ EXPORTS RegSetValueExW = RegSetValueExW_WCECL @464 ; winuser_wcecl.cpp + SystemParametersInfoW = SystemParametersInfoW_WCECL @89 + LoadAcceleratorsW = LoadAcceleratorsW_WCECL @94 RegisterClassW = RegisterClassW_WCECL @95 CopyRect = CopyRect_WCECL @96 InflateRect = InflateRect_WCECL @98 IntersectRect = IntersectRect_WCECL @99 + OffsetRect = OffsetRect_WCECL @101 PtInRect = PtInRect_WCECL @102 SetRect = SetRect_WCECL @103 + UnionRect = UnionRect_WCECL @106 + CharUpperW = CharUpperW_WCECL @224 CreateWindowExW = CreateWindowExW_WCECL @246 SetWindowPos = SetWindowPos_WCECL @247 GetWindowRect = GetWindowRect_WCECL @248 GetClientRect = GetClientRect_WCECL @249 InvalidateRect = InvalidateRect_WCECL @250 + GetWindow = GetWindow_WCECL @251 + ClientToScreen = ClientToScreen_WCECL @254 + ScreenToClient = ScreenToClient_WCECL @255 + SetWindowTextW = SetWindowTextW_WCECL @256 + GetWindowTextW = GetWindowTextW_WCECL @257 + SetWindowLongW = SetWindowLongW_WCECL @258 + GetWindowLongW = GetWindowLongW_WCECL @259 BeginPaint = BeginPaint_WCECL @260 EndPaint = EndPaint_WCECL @261 GetDC = GetDC_WCECL @262 @@ -192,51 +304,84 @@ EXPORTS DestroyWindow = DestroyWindow_WCECL @265 ShowWindow = ShowWindow_WCECL @266 UpdateWindow = UpdateWindow_WCECL @267 + GetParent = GetParent_WCECL @269 + MoveWindow = MoveWindow_WCECL @272 + GetUpdateRgn = GetUpdateRgn_WCECL @273 + GetUpdateRect = GetUpdateRect_WCECL @274 + GetWindowTextLengthW = GetWindowTextLengthW_WCECL @276 ValidateRect = ValidateRect_WCECL @278 + SetScrollRange = SetScrollRange_WCECL @281 + GetScrollInfo = GetScrollInfo_WCECL @282 FindWindowW = FindWindowW_WCECL @286 EnableWindow = EnableWindow_WCECL @287 IsWindowEnabled = IsWindowEnabled_WCECL @288 + ScrollWindowEx = ScrollWindowEx_WCECL @289 + HideCaret = HideCaret_WCECL @660 + ShowCaret = ShowCaret_WCECL @661 + OpenClipboard = OpenClipboard_WCECL @668 + CloseClipboard = CloseClipboard_WCECL @669 + GetClipboardData = GetClipboardData_WCECL @672 RegisterClipboardFormat = RegisterClipboardFormat_WCECL @673 EnumClipboardFormats = EnumClipboardFormats_WCECL @675 EmptyClipboard = EmptyClipboard_WCECL @677 IsClipboardFormatAvailable = IsClipboardFormatAvailable_WCECL @678 + SetCursor = SetCursor_WCECL @682 LoadCursorW = LoadCursorW_WCECL @683 CheckRadioButton = CheckRadioButton_WCECL @684 + SendDlgItemMessageW = SendDlgItemMessageW_WCECL @685 SetDlgItemTextW = SetDlgItemTextW_WCECL @686 CreateDialogIndirectParamW = CreateDialogIndirectParamW_WCECL @688 DefDlgProcW = DefDlgProcW_WCECL @689 DialogBoxIndirectParamW = DialogBoxIndirectParamW_WCECL @690 EndDialog = EndDialog_WCECL @691 GetDlgItem = GetDlgItem_WCECL @692 + GetDlgCtrlID = GetDlgCtrlID_WCECL @693 + GetNextDlgTabItem = GetNextDlgTabItem_WCECL @696 IsDialogMessageW = IsDialogMessageW_WCECL @698 + GetForegroundWindow = GetForegroundWindow_WCECL @701 SetForegroundWindow = SetForegroundWindow_WCECL @702 SetFocus = SetFocus_WCECL @704 + GetFocus = GetFocus_WCECL @705 SetCapture = SetCapture_WCECL @708 ReleaseCapture = ReleaseCapture_WCECL @709 LoadIconW = LoadIconW_WCECL @728 LoadImageW = LoadImageW_WCECL @730 + GetClipCursor = GetClipCursor_WCECL @732 + GetAsyncKeyState = GetAsyncKeyState_WCECL @826 + TranslateAcceleratorW = TranslateAcceleratorW_WCECL @838 + AppendMenuW = AppendMenuW_WCECL @842 + EnableMenuItem = EnableMenuItem_WCECL @847 + CheckMenuRadioItem = CheckMenuRadioItem_WCECL @849 + MessageBeep = MessageBeep_WCECL @857 MessageBoxW = MessageBoxW_WCECL @858 DispatchMessageW = DispatchMessageW_WCECL @859 GetKeyState = GetKeyState_WCECL @860 GetMessageW = GetMessageW_WCECL @861 + GetMessagePos = GetMessagePos_WCECL @862 PeekMessageW = PeekMessageW_WCECL @864 PostMessageW = PostMessageW_WCECL @865 PostQuitMessage = PostQuitMessage_WCECL @866 SendMessageW = SendMessageW_WCECL @868 + SendNotifyMessageW = SendNotifyMessageW_WCECL @869 TranslateMessage = TranslateMessage_WCECL @870 + MsgWaitForMultipleObjectsEx = MsgWaitForMultipleObjectsEx_WCECL @871 LoadBitmapW = LoadBitmapW_WCECL @873 SetTimer = SetTimer_WCECL @875 KillTimer = KillTimer_WCECL @876 + GetClassInfoW = GetClassInfoW_WCECL @878 + UnregisterClassW = UnregisterClassW_WCECL @884 IsWindowVisible = IsWindowVisible_WCECL @886 + AdjustWindowRectEx = AdjustWindowRectEx_WCECL @887 GetDoubleClickTime = GetDoubleClickTime_WCECL @888 + TransparentBlt = TransparentBlt_WCECL @906 BeginDeferWindowPos = BeginDeferWindowPos_WCECL @1157 + DeferWindowPos = DeferWindowPos_WCECL @1158 EndDeferWindowPos = EndDeferWindowPos_WCECL @1159 + GetPropW = GetPropW_WCECL @1498 + MonitorFromPoint = MonitorFromPoint_WCECL @1522 + RedrawWindow = RedrawWindow_WCECL @1672 ; Not found in the COREDLL code - InitializeCriticalSection @2 - DeleteCriticalSection @3 - EnterCriticalSection @4 - LeaveCriticalSection @5 ExitThread @6 GetSystemTime @25 GetTimeZoneInformation @27 @@ -247,8 +392,6 @@ EXPORTS HeapAlloc @46 HeapReAlloc @47 HeapSize @48 - HeapFree @49 - GetProcessHeap @50 HeapValidate @51 GetHeapSnapshot @52 wsprintfW @56 @@ -271,25 +414,20 @@ EXPORTS _wtol @78 Random @80 GlobalMemoryStatus @88 - SystemParametersInfoW @89 CreateDIBSection @90 EqualRgn @91 CreateAcceleratorTableW @92 DestroyAcceleratorTable @93 - LoadAcceleratorsW @94 EqualRect @97 IsRectEmpty @100 - OffsetRect @101 SetRectEmpty @104 SubtractRect @105 - UnionRect @106 GetCommMask @110 GetCommModemStatus @111 GetCommProperties @112 GetCommState @113 GetCommTimeouts @114 GetTempPathW @162 - GetFileSize @172 GetFileInformationByHandle @174 GetACP @186 GetOEMCP @187 @@ -299,21 +437,14 @@ EXPORTS towupper @195 MultiByteToWideChar @196 CompareStringW @198 - LCMapStringW @199 SetLocaleInfoW @201 - GetNumberFormatW @204 GetCurrencyFormatW @205 EnumCalendarInfoW @206 - GetSystemDefaultLangID @211 GetUserDefaultLangID @212 - GetSystemDefaultLCID @213 - GetUserDefaultLCID @215 GetStringTypeW @216 - GetStringTypeExW @217 CharLowerW @221 CharLowerBuffW @222 CharUpperBuffW @223 - CharUpperW @224 CharPrevW @225 CharNextW @226 lstrcmpW @227 @@ -321,33 +452,18 @@ EXPORTS _wcsnicmp @229 _wcslwr @231 _wcsupr @232 - GetWindow @251 WindowFromPoint @252 ChildWindowFromPoint @253 - ClientToScreen @254 - ScreenToClient @255 - SetWindowTextW @256 - GetWindowTextW @257 - SetWindowLongW @258 - GetWindowLongW @259 SetParent @268 - GetParent @269 GetWindowDC @270 IsWindow @271 - MoveWindow @272 - GetUpdateRgn @273 - GetUpdateRect @274 BringWindowToTop @275 - GetWindowTextLengthW @276 IsChild @277 SetScrollInfo @279 SetScrollPos @280 - SetScrollRange @281 - GetScrollInfo @282 GetClassNameW @283 MapWindowPoints @284 CallWindowProcW @285 - ScrollWindowEx @289 PostThreadMessageW @290 EnumWindows @291 GetWindowThreadProcessId @292 @@ -398,48 +514,30 @@ EXPORTS FlushInstructionCache @508 THCreateSnapshot @511 GetThreadPriority @515 - GetLastError @516 - SetLastError @517 GetExitCodeThread @518 SizeofResource @534 - GetProcessVersion @536 - OutputDebugStringW @541 GetSystemInfo @542 RaiseException @543 NKDbgPrintfW @545 - CreateFileMappingW @548 - MapViewOfFile @549 - UnmapViewOfFile @550 CreateMutexW @555 ReleaseMutex @556 GetProcessIndexFromID @640 CreateCaret @658 DestroyCaret @659 - HideCaret @660 - ShowCaret @661 GetCaretPos @663 GetCaretBlinkTime @665 - OpenClipboard @668 - CloseClipboard @669 GetClipboardOwner @670 SetClipboardData @671 - GetClipboardData @672 GetClipboardFormatNameW @676 GetPriorityClipboardFormat @679 GetOpenClipboardWindow @680 - SetCursor @682 - SendDlgItemMessageW @685 GetDlgItemTextW @687 - GetDlgCtrlID @693 GetDialogBaseUnits @694 GetDlgItemInt @695 - GetNextDlgTabItem @696 GetNextDlgGroupItem @697 MapDialogRect @699 SetDlgItemInt @700 - GetForegroundWindow @701 SetActiveWindow @703 - GetFocus @705 GetActiveWindow @706 GetCapture @707 GetVersionExW @717 @@ -450,44 +548,11 @@ EXPORTS DrawIconEx @726 ExtractIconExW @727 ClipCursor @731 - GetClipCursor @732 GetCursor @733 GetCursorPos @734 SetCursorPos @736 ShowCursor @737 - ImageList_Add @738 - ImageList_AddMasked @739 - ImageList_BeginDrag @740 ImageList_CopyDitherImage @741 - ImageList_Create @742 - ImageList_Destroy @743 - ImageList_DragEnter @744 - ImageList_DragLeave @745 - ImageList_DragMove @746 - ImageList_DragShowNolock @747 - ImageList_Draw @748 - ImageList_DrawEx @749 - ImageList_DrawIndirect @750 - ImageList_EndDrag @751 - ImageList_GetBkColor @752 - ImageList_GetDragImage @753 - ImageList_GetIcon @754 - ImageList_GetIconSize @755 - ImageList_GetImageCount @756 - ImageList_GetImageInfo @757 - ImageList_LoadImage @758 - ImageList_Merge @759 - ImageList_Remove @760 - ImageList_Replace @761 - ImageList_ReplaceIcon @762 - ImageList_SetBkColor @763 - ImageList_SetDragCursorImage @764 - ImageList_SetIconSize @765 - ImageList_SetOverlayImage @766 - ImageList_Copy @767 - ImageList_Duplicate @768 - ImageList_SetImageCount @769 - ImmAssociateContext @770 ImmConfigureIMEW @771 ImmCreateIMCC @772 ImmDestroyIMCC @773 @@ -498,9 +563,7 @@ EXPORTS ImmGetCandidateListCountW @778 ImmGetCandidateWindow @779 ImmGetCompositionFontW @780 - ImmGetCompositionStringW @781 ImmGetCompositionWindow @782 - ImmGetContext @783 ImmGetConversionListW @784 ImmGetConversionStatus @785 ImmGetDefaultIMEWnd @786 @@ -518,7 +581,6 @@ EXPORTS ImmNotifyIME @800 ImmReSizeIMCC @801 ImmRegisterWordW @802 - ImmReleaseContext @803 ImmSIPanelState @804 ImmSetCandidateWindow @807 ImmSetCompositionFontW @808 @@ -532,18 +594,13 @@ EXPORTS ImmUnlockIMC @817 ImmUnlockIMCC @818 ImmUnregisterWordW @819 - GetAsyncKeyState @826 RegisterHotKey @835 - TranslateAcceleratorW @838 InsertMenuW @841 - AppendMenuW @842 RemoveMenu @843 DestroyMenu @844 TrackPopupMenuEx @845 LoadMenuW @846 - EnableMenuItem @847 CheckMenuItem @848 - CheckMenuRadioItem @849 DeleteMenu @850 CreateMenu @851 CreatePopupMenu @852 @@ -551,79 +608,42 @@ EXPORTS GetMenuItemInfoW @854 GetSubMenu @855 DrawMenuBar @856 - MessageBeep @857 - GetMessagePos @862 - SendNotifyMessageW @869 - MsgWaitForMultipleObjectsEx @871 GetMessageSource @872 - GetClassInfoW @878 GetClassLongW @879 SetClassLongW @880 - UnregisterClassW @884 - GetSystemMetrics @885 - AdjustWindowRectEx @887 - GetSysColor @889 SetSysColors @890 RegisterWindowMessageW @891 AddFontResourceW @893 CreateFontIndirectW @895 ExtTextOutW @896 - GetTextExtentExPointW @897 - GetTextMetricsW @898 - CreateBitmap @901 MaskBlt @904 StretchBlt @905 - TransparentBlt @906 - RestoreDC @907 - SaveDC @908 CreateDCW @909 GetBkColor @913 GetBkMode @914 GetCurrentObject @915 GetObjectType @917 GetTextColor @920 - SetBkColor @922 - SetBkMode @923 - SetTextColor @924 CreatePatternBrush @925 - CreatePen @926 FillRgn @927 SetROP2 @928 CreateDIBPatternBrushPt @929 - CreatePenIndirect @930 DrawEdge @932 Ellipse @934 - GetPixel @936 - GetSysColorBrush @937 - PatBlt @938 - Polygon @939 - Polyline @940 - Rectangle @941 RoundRect @942 - SetBrushOrgEx @943 - DrawTextW @945 GetNearestPaletteIndex @948 GetPaletteEntries @949 GetSystemPaletteEntries @950 - GetNearestColor @952 - RealizePalette @953 - SelectPalette @954 GetTextFaceW @967 - CombineRgn @968 - CreateRectRgnIndirect @969 ExcludeClipRect @970 GetClipRgn @972 GetRegionData @973 GetRgnBox @974 - IntersectClipRect @975 OffsetRgn @976 PtInRegion @977 RectInRegion @978 - SelectClipRgn @979 - CreateRectRgn @980 RectVisible @981 SetRectRgn @982 - SetViewportOrgEx @983 ScrollDC @985 EnableEUDC @986 DrawFrameControl @987 @@ -692,12 +712,9 @@ EXPORTS CeLogSetZones @1452 CeLogReSync @1467 SetPropW @1497 - GetPropW @1498 RemovePropW @1499 - GlobalAddAtomW @1519 GlobalDeleteAtom @1520 GlobalFindAtomW @1521 - MonitorFromPoint @1522 MonitorFromRect @1523 MonitorFromWindow @1524 GetMonitorInfoA @1525 @@ -709,12 +726,7 @@ EXPORTS ChangeDisplaySettingsEx = ChangeDisplaySettingsExW @1611 MoveToEx @1651 GetCurrentPositionEx @1653 - SetTextAlign @1654 - GetTextAlign @1655 GetDIBColorTable @1665 - StretchDIBits @1667 - RedrawWindow @1672 - GradientFill @1763 GetKeyboardLayoutList @1767 InvertRect @1770 GetKeyboardType @1771 @@ -750,12 +762,9 @@ EXPORTS WeirdThing1865 @1865 WeirdThing1866 @1866 GetGweApiSetTables @1867 - MulDiv @1877 GetCharABCWidthsI @1887 GetFontData @1888 GetOutlineTextMetricsW @1889 - SetLayout @1890 - GetLayout @1891 GetTextCharacterExtra @1963 GetWindowOrgEx @1985 GetWindowExtEx @1986 diff --git a/COREDLL/commctrl_wcecl.cpp b/COREDLL/commctrl_wcecl.cpp index 3d20321..3cd408a 100644 --- a/COREDLL/commctrl_wcecl.cpp +++ b/COREDLL/commctrl_wcecl.cpp @@ -2,6 +2,224 @@ #include "stdafx.h" // Functions +int WINAPI ImageList_Add_WCECL(HIMAGELIST hImageList, HBITMAP hBitmap, HBITMAP hMask) +{ + return ImageList_Add(hImageList, hBitmap, hMask); +} + +int WINAPI ImageList_AddMasked_WCECL(HIMAGELIST hImageList, HBITMAP hBitmap, COLORREF crMask) +{ + return ImageList_AddMasked(hImageList, hBitmap, crMask); +} + +int WINAPI ImageList_BeginDrag_WCECL(HIMAGELIST hImageList, int iTrack, int dxHotspot, int dyHotspot) +{ + return ImageList_BeginDrag(hImageList, iTrack, dxHotspot, dyHotspot); +} + +HIMAGELIST WINAPI ImageList_Create_WCECL(int cx, int cy, UINT flags, int cInitial, int cGrow) +{ + return ImageList_Create(cx, cy, flags, cInitial, cGrow); +} + +BOOL WINAPI ImageList_Destroy_WCECL(HIMAGELIST hImageList) +{ + return ImageList_Destroy(hImageList); +} + +BOOL WINAPI ImageList_DragEnter_WCECL(HWND hwndLock, int x, int y) +{ + return ImageList_DragEnter(hwndLock, x, y); +} + +BOOL WINAPI ImageList_DragLeave_WCECL(HWND hwndLock) +{ + return ImageList_DragLeave(hwndLock); +} + +BOOL WINAPI ImageList_DragMove_WCECL(int x, int y) +{ + return ImageList_DragMove(x, y); +} + +BOOL WINAPI ImageList_DragShowNolock_WCECL(BOOL fShow) +{ + return ImageList_DragShowNolock(fShow); +} + +BOOL WINAPI ImageList_Draw_WCECL( + HIMAGELIST hImageList, + int i, + HDC hDcDest, + int x, + int y, + UINT fStyle) +{ + return ImageList_Draw(hImageList, i, hDcDest, x, y, fStyle); +} + +BOOL WINAPI ImageList_DrawEx_WCECL( + HIMAGELIST hImageList, + int i, + HDC hDcDest, + int x, + int y, + int dx, + int dy, + COLORREF rgbBk, + COLORREF rgbFg, + UINT fStyle) +{ + return ImageList_DrawEx( + hImageList, + i, hDcDest, x, y, dx, dy, rgbBk, rgbFg, fStyle); +} + +BOOL WINAPI ImageList_DrawIndirect_WCECL(IMAGELISTDRAWPARAMS* pImlDp) +{ + return ImageList_DrawIndirect(pImlDp); +} + +void WINAPI ImageList_EndDrag_WCECL() +{ + ImageList_EndDrag(); +} + +COLORREF WINAPI ImageList_GetBkColor_WCECL(HIMAGELIST hImageList) +{ + return ImageList_GetBkColor(hImageList); +} + +HIMAGELIST WINAPI ImageList_GetDragImage_WCECL(PPOINT pOutPt, PPOINT pPtHotspot) +{ + return ImageList_GetDragImage(pOutPt, pPtHotspot); +} + +HICON WINAPI ImageList_GetIcon_WCECL(HIMAGELIST hImageList, int i, UINT uFlags) +{ + return ImageList_GetIcon(hImageList, i, uFlags); +} + +BOOL WINAPI ImageList_GetIconSize_WCECL( + HIMAGELIST hImageList, + int* pOutCx, + int* pOutCy) +{ + return ImageList_GetIconSize(hImageList, pOutCx, pOutCy); +} + +int WINAPI ImageList_GetImageCount_WCECL(HIMAGELIST hImageList) +{ + return ImageList_GetImageCount(hImageList); +} + +BOOL WINAPI ImageList_GetImageInfo_WCECL( + HIMAGELIST hImageList, + int i, + IMAGEINFO* pImageInfo) +{ + return ImageList_GetImageInfo(hImageList, i, pImageInfo); +} + +HIMAGELIST WINAPI ImageList_LoadImage_WCECL( + HINSTANCE hInstance, + LPCWSTR lpBmp, + int cx, + int cGrow, + COLORREF crMask, + UINT uType, + UINT uFlags) +{ + return ImageList_LoadImageW( + hInstance, + lpBmp, + cx, + cGrow, + crMask, + uType, + uFlags); +} + +HIMAGELIST WINAPI ImageList_Merge_WCECL( + HIMAGELIST hImageList1, + int i1, + HIMAGELIST hImageList2, + int i2, + int dx, + int dy) +{ + return ImageList_Merge( + hImageList1, + i1, + hImageList2, + i2, + dx, + dy); +} + +BOOL WINAPI ImageList_Remove_WCECL(HIMAGELIST hImageList, int i) +{ + return ImageList_Remove( + hImageList, + i); +} + +BOOL WINAPI ImageList_Replace_WCECL( + HIMAGELIST hImageList, + int i, + HBITMAP hImage, + HBITMAP hMask) +{ + return ImageList_Replace(hImageList, i, hImage, hMask); +} + +int WINAPI ImageList_ReplaceIcon_WCECL( + HIMAGELIST hImageList, + int i, + HICON hIcon) +{ + return ImageList_ReplaceIcon(hImageList, i, hIcon); +} + +COLORREF WINAPI ImageList_SetBkColor_WCECL(HIMAGELIST hImageList, COLORREF clrBk) +{ + return ImageList_SetBkColor(hImageList, clrBk); +} + +BOOL WINAPI ImageList_SetDragCursorImage_WCECL(HIMAGELIST hImageList, int iDrag, int dxHotspot, int dyHotspot) +{ + return ImageList_SetDragCursorImage(hImageList, iDrag, dxHotspot, dyHotspot); +} + +BOOL WINAPI ImageList_SetIconSize_WCECL(HIMAGELIST hImageList, int cx, int cy) +{ + return ImageList_SetIconSize(hImageList, cx, cy); +} + +BOOL WINAPI ImageList_SetOverlayImage_WCECL(HIMAGELIST hImageList, int iImage, int iOverlay) +{ + return ImageList_SetOverlayImage(hImageList, iImage, iOverlay); +} + +BOOL WINAPI ImageList_Copy_WCECL( + HIMAGELIST hImlDst, + int iDst, + HIMAGELIST hImlSrc, + int iSrc, + UINT uFlags) +{ + return ImageList_Copy(hImlDst, iDst, hImlSrc, iSrc, uFlags); +} + +HIMAGELIST WINAPI ImageList_Duplicate_WCECL(HIMAGELIST hImageList) +{ + return ImageList_Duplicate(hImageList); +} + +BOOL WINAPI ImageList_SetImageCount_WCECL(HIMAGELIST hImageList, UINT uNewCount) +{ + return ImageList_SetImageCount(hImageList, uNewCount); +} // Stubs Stub(ImageList_CopyDitherImage); // ret: void; args: HIMAGELIST himlDest, WORD iDst, int xDst, int yDst, HIMAGELIST himlSrc, int iSrc, UINT fStyle) diff --git a/COREDLL/dbgapi_wcecl.cpp b/COREDLL/dbgapi_wcecl.cpp index 3f023ae..7af60c1 100644 --- a/COREDLL/dbgapi_wcecl.cpp +++ b/COREDLL/dbgapi_wcecl.cpp @@ -4,13 +4,23 @@ // Functions void WINAPIV NKDbgPrintfW(LPCWSTR lpszFmt, ...) { - ProgramErrorDialog(L"Function NKDbgPrintfW is not implemented yet.", FALSE); - va_list args; va_start(args, lpszFmt); - // todo + + AllocConsole(); + freopen("CONOUT$", "w", stdout); + + vwprintf(lpszFmt, args); + + ProgramErrorDialog(L"Function NKDbgPrintfW is not implemented yet.", FALSE); va_end(args); } +void WINAPI OutputDebugStringW_WCECL(LPCWSTR str) +{ + OutputDebugStringW(str); +} + + // Stubs diff --git a/COREDLL/dllmain.cpp b/COREDLL/dllmain.cpp index e5f381a..c97330a 100644 --- a/COREDLL/dllmain.cpp +++ b/COREDLL/dllmain.cpp @@ -135,10 +135,6 @@ BOOL __stdcall DllMain(HMODULE hModule, { case DLL_PROCESS_ATTACH: { - AllocConsole(); - freopen("CONOUT$", "w", stdout); - freopen("CONIN$", "r", stdin); - if (MessageBoxExW( NULL, L"Attach a debugger now?", diff --git a/COREDLL/imm_wcecl.cpp b/COREDLL/imm_wcecl.cpp index ff71d97..c05c73f 100644 --- a/COREDLL/imm_wcecl.cpp +++ b/COREDLL/imm_wcecl.cpp @@ -2,6 +2,30 @@ #include "stdafx.h" // Functions +HIMC WINAPI ImmAssociateContext_WCECL(HWND hWnd, HIMC hImc) +{ + return ImmAssociateContext(hWnd, hImc); +} + +int WINAPI ImmGetCompositionStringW_WCECL( + HIMC hImc, + DWORD dw, + LPVOID lpBuf, + DWORD dwBufLen) +{ + return ImmGetCompositionStringW(hImc, dw, lpBuf, dwBufLen); +} + +HIMC WINAPI ImmGetContext_WCECL(HWND hWnd) +{ + return ImmGetContext(hWnd); +} + +BOOL WINAPI ImmReleaseContext_WCECL(HWND hWnd, HIMC hImc) +{ + return ImmReleaseContext(hWnd, hImc); +} + // Stubs Stub(ImmSIPanelState); // ret: BOOL; args: UINT dwCmd, LPVOID pValue diff --git a/COREDLL/other.cpp b/COREDLL/other.cpp index 768421a..914c8a5 100644 --- a/COREDLL/other.cpp +++ b/COREDLL/other.cpp @@ -206,25 +206,49 @@ void* _fileno_WCECL(FILE* file) return (void*)_get_osfhandle(_fileno(file)); } -int WINAPI WideCharToMultiByte_WCECL( - UINT CodePage, - DWORD dwFlags, - LPCWSTR lpWideCharStr, - int cchWideChar, - LPSTR lpMultiByteStr, - int cbMultiByte, - LPCSTR lpDefaultChar, - LPBOOL lpUsedDefaultChar) +int WINAPI GetSystemMetrics_WCECL(int i) { - return WideCharToMultiByte( - CodePage, - dwFlags, - lpWideCharStr, - cchWideChar, - lpMultiByteStr, - cbMultiByte, - lpDefaultChar, - lpUsedDefaultChar); + return GetSystemMetrics(i); +} + +int WINAPI DrawTextW_WCECL( + HDC hDc, + LPCWSTR lpchText, + int cchText, + LPRECT lprc, + UINT format) +{ + return DrawTextW(hDc, lpchText, cchText, lprc, format); +} + +COLORREF WINAPI SetTextColor_WCECL(HDC hDc, COLORREF color) +{ + return SetTextColor(hDc, color); +} + +DWORD WINAPI GetLastError_WCECL() +{ + return GetLastError(); +} + +void WINAPI SetLastError_WCECL(DWORD dwErrorCode) +{ + SetLastError(dwErrorCode); +} + +DWORD WINAPI GetSysColor_WCECL(int index) +{ + return GetSysColor(index); +} + +HBRUSH WINAPI GetSysColorBrush_WCECL(int nIndex) +{ + return GetSysColorBrush(nIndex); +} + +DWORD GetProcessVersion_WCECL(DWORD ProcessId) +{ + return GetProcessVersion(ProcessId); } // Stubs diff --git a/COREDLL/stdafx.h b/COREDLL/stdafx.h index b44d098..ea745c1 100644 --- a/COREDLL/stdafx.h +++ b/COREDLL/stdafx.h @@ -26,10 +26,12 @@ #include // std::string, std::wstring #include // std::copy +typedef LRESULT(__cdecl *WNDPROCWCE)(HWND hWnd, UINT uMessage, WPARAM, LPARAM); + // STRUCTS typedef struct tagWNDCLASSW_WCECL { UINT style; - WNDPROC lpfnWndProc; + WNDPROCWCE lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; diff --git a/COREDLL/stringapiset_wcecl.cpp b/COREDLL/stringapiset_wcecl.cpp new file mode 100644 index 0000000..6d6f27a --- /dev/null +++ b/COREDLL/stringapiset_wcecl.cpp @@ -0,0 +1,49 @@ +#include "stdafx.h" + +BOOL WINAPI GetStringTypeExW_WCECL( + LCID locale, + DWORD dwInfoType, + LPCWCH lpSrcStr, + int cchSrc, + LPWORD lpCharType) +{ + return GetStringTypeExW(locale, dwInfoType, lpSrcStr, cchSrc, lpCharType); +} + +int WINAPI WideCharToMultiByte_WCECL( + UINT CodePage, + DWORD dwFlags, + LPCWSTR lpWideCharStr, + int cchWideChar, + LPSTR lpMultiByteStr, + int cbMultiByte, + LPCSTR lpDefaultChar, + LPBOOL lpUsedDefaultChar) +{ + return WideCharToMultiByte( + CodePage, + dwFlags, + lpWideCharStr, + cchWideChar, + lpMultiByteStr, + cbMultiByte, + lpDefaultChar, + lpUsedDefaultChar); +} + +int WINAPI MultiByteToWideChar_WCECL( + UINT CodePage, + DWORD dwFlags, + LPCCH lpMultiByteStr, + int cbMultiByte, + LPWSTR lpWideCharStr, + int cchWideChar) +{ + return MultiByteToWideChar( + CodePage, + dwFlags, + lpMultiByteStr, + cbMultiByte, + lpWideCharStr, + cchWideChar); +} \ No newline at end of file diff --git a/COREDLL/wcecl_memtools.cpp b/COREDLL/wcecl_memtools.cpp index ba09895..16cef77 100644 --- a/COREDLL/wcecl_memtools.cpp +++ b/COREDLL/wcecl_memtools.cpp @@ -27,4 +27,4 @@ HMODULE GetModule(HANDLE pHandle) } } return nullptr; -} +} \ No newline at end of file diff --git a/COREDLL/winbase_wcecl.cpp b/COREDLL/winbase_wcecl.cpp index 54a1eeb..6b00fe9 100644 --- a/COREDLL/winbase_wcecl.cpp +++ b/COREDLL/winbase_wcecl.cpp @@ -593,5 +593,87 @@ BOOL WINAPI TerminateProcess_WCECL( auto result = ::TerminateProcess(hProcess, uExitCode); return result; } + +int WINAPI MulDiv_WCECL(int nNumber, int nNumerator, int nDenominator) +{ + return MulDiv(nNumber, nNumber, nDenominator); +} + +ATOM WINAPI GlobalAddAtomW_WCECL(LPCWSTR lpString) +{ + return GlobalAddAtomW(lpString); +} + +void WINAPI DeleteCriticalSection_WCECL(LPCRITICAL_SECTION pCriticalSection) +{ + DeleteCriticalSection(pCriticalSection); +} + +void WINAPI EnterCriticalSection_WCECL(LPCRITICAL_SECTION pCriticalSection) +{ + EnterCriticalSection(pCriticalSection); +} + +void WINAPI LeaveCriticalSection_WCECL(LPCRITICAL_SECTION pCriticalSection) +{ + LeaveCriticalSection(pCriticalSection); +} + +void WINAPI InitializeCriticalSection_WCECL(LPCRITICAL_SECTION pCriticalSection) +{ + InitializeCriticalSection(pCriticalSection); +} + +BOOL WINAPI UnmapViewOfFile_WCECL(LPCVOID pAddress) +{ + return UnmapViewOfFile(pAddress); +} + +LPVOID WINAPI MapViewOfFile_WCECL( + HANDLE hFile, + DWORD dwDesiredAddress, + DWORD dwFileOffsetHigh, + DWORD dwFileOffsetLow, + DWORD dwBytesToMap) +{ + return MapViewOfFile( + hFile, + dwDesiredAddress, + dwFileOffsetHigh, + dwFileOffsetLow, + dwBytesToMap); +} + +HANDLE WINAPI CreateFileMappingW_WCECL( + HANDLE hFile, + LPSECURITY_ATTRIBUTES lpFileMappingAttributes, + DWORD flProtect, + DWORD dwMaximumSizeHigh, + DWORD dwMaximumSizeLow, + LPCWSTR lpName) +{ + return CreateFileMappingW( + hFile, + lpFileMappingAttributes, + flProtect, + dwMaximumSizeHigh, + dwMaximumSizeLow, + lpName); +} + +DWORD WINAPI GetFileSize_WCECL(HANDLE hFile, LPDWORD lpFileSizeHigh) +{ + return GetFileSize(hFile, lpFileSizeHigh); +} + +HANDLE WINAPI GetProcessHeap_WCECL() +{ + return GetProcessHeap(); +} + +int WINAPI HeapFree_WCECL(HANDLE hHeap, DWORD dwFlags, LPVOID lpMem) +{ + return HeapFree(hHeap, dwFlags, lpMem); +} // Stubs diff --git a/COREDLL/wingdi_wcecl.cpp b/COREDLL/wingdi_wcecl.cpp index 227149b..645b883 100644 --- a/COREDLL/wingdi_wcecl.cpp +++ b/COREDLL/wingdi_wcecl.cpp @@ -136,5 +136,206 @@ BOOL WINAPI BitBlt_WCECL(HDC hdc, int x, int y, int cx, int cy, HDC hdcSrc, int return result; } +int WINAPI CombineRgn_WCECL(HRGN hrgnDst, HRGN hrgnSrc1, HRGN hrgnSrc2, int iMode) +{ + return CombineRgn(hrgnDst, hrgnSrc1, hrgnSrc2, iMode); +} + +BOOL WINAPI PatBlt_WCECL(HDC hdc, int x, int y, int w, int h, DWORD rop) +{ + return PatBlt(hdc, x, y, w, h, rop); +} + +int WINAPI SetBkMode_WCECL(HDC hDc, int mode) +{ + return SetBkMode(hDc, mode); +} + +COLORREF WINAPI SetBkColor_WCECL(HDC hDc, COLORREF color) +{ + return SetBkColor(hDc, color); +} + +int WINAPI StretchDIBits_WCECL( + HDC hdc, + int xDest, + int yDest, + int DestWidth, + int DestHeight, + int xSrc, + int ySrc, + int SrcWidth, + int SrcHeight, + const void* lpBits, + const BITMAPINFO* lpbmi, + UINT iUsage, + DWORD rop) +{ + return StretchDIBits( + hdc, + xDest, + yDest, + DestWidth, + DestHeight, + xSrc, + ySrc, + SrcWidth, + SrcHeight, + lpBits, + lpbmi, + iUsage, + rop); +} + + +UINT WINAPI SetTextAlign_WCECL(HDC hDc, UINT align) +{ + return SetTextAlign(hDc, align); +} + +BOOL WINAPI SetViewportOrgEx_WCECL(HDC hDc, int x, int y, LPPOINT lpPoint) +{ + return SetViewportOrgEx(hDc, x, y, lpPoint); +} + +HBITMAP WINAPI CreateBitmap_WCECL( + int nWidth, + int nHeight, + UINT nPlanes, + UINT nBitcount, + const void* lpBits) +{ + return CreateBitmap(nWidth, nHeight, nPlanes, nBitcount, lpBits); +} + +HPEN WINAPI CreatePen_WCECL(int iStyle, int cWidth, COLORREF colorRef) +{ + return CreatePen(iStyle, cWidth, colorRef); +} + +HPEN WINAPI CreatePenIndirect_WCECL(const LOGPEN* plPen) +{ + return CreatePenIndirect(plPen); +} + +HRGN WINAPI CreateRectRgn_WCECL(int x1, int y1, int x2, int y2) +{ + return CreateRectRgn(x1, y1, x2, y2); +} + +HRGN WINAPI CreateRectRgnIndirect_WCECL(const RECT* lpRect) +{ + return CreateRectRgnIndirect(lpRect); +} + +UINT WINAPI GetTextAlign_WCECL(HDC hDc) +{ + return GetTextAlign(hDc); +} + +BOOL WINAPI GetTextExtentExPointW_WCECL( + HDC hDc, + LPCWSTR lpszString, + int cchString, + int nMaxExtent, + LPINT lpnFit, + LPINT lpnDx, + LPSIZE lpSize) +{ + return GetTextExtentExPointW( + hDc, + lpszString, + cchString, + nMaxExtent, + lpnFit, + lpnDx, + lpSize); +} + +BOOL WINAPI GetTextMetricsW_WCECL(HDC hDc, LPTEXTMETRICW lpTextMetric) +{ + return GetTextMetricsW(hDc, lpTextMetric); +} + +int WINAPI GradientFill_WCECL( + HDC hdc, + PTRIVERTEX pVertex, + ULONG nVertex, + PVOID pMesh, + ULONG nMesh, + ULONG ulMode) +{ + return GradientFill(hdc, pVertex, nVertex, pMesh, nMesh, ulMode); +} + +DWORD WINAPI GetLayout_WCECL(HDC hDc) +{ + return GetLayout(hDc); +} + +COLORREF WINAPI GetNearestColor_WCECL(HDC hDc, COLORREF color) +{ + return GetNearestColor(hDc, color); +} + +COLORREF WINAPI GetPixel_WCECL(HDC hDc, int x, int y) +{ + return GetPixel(hDc, x, y); +} + +int WINAPI IntersectClipRect_WCECL(HDC hDc, int a, int b, int c, int d) +{ + return IntersectClipRect(hDc, a, b, c, d); +} + +BOOL WINAPI Polygon_WCECL(HDC hDc, const POINT* apt, int cpt) +{ + return Polygon(hDc, apt, cpt); +} + +BOOL WINAPI Polyline_WCECL(HDC hDc, const POINT* apt, int cpt) +{ + return Polyline(hDc, apt, cpt); +} + +UINT WINAPI RealizePalette_WCECL(HDC hDc) +{ + return RealizePalette(hDc); +} + +BOOL WINAPI Rectangle_WCECL(HDC hDc, int left, int top, int right, int bottom) +{ + return Rectangle(hDc, left, top, right, bottom); +} + +BOOL WINAPI RestoreDC_WCECL(HDC hDc, int nSavedDc) +{ + return RestoreDC(hDc, nSavedDc); +} + +int WINAPI SaveDC_WCECL(HDC hDc) +{ + return SaveDC(hDc); +} + +int WINAPI SelectClipRgn_WCECL(HDC hDc, HRGN hRgn) +{ + return SelectClipRgn(hDc, hRgn); +} + +HPALETTE WINAPI SelectPalette_WCECL(HDC hDc, HPALETTE hPalette, BOOL bForceBkd) +{ + return SelectPalette(hDc, hPalette, bForceBkd); +} + +BOOL WINAPI SetBrushOrgEx_WCECL(HDC hDc, int x, int y, LPPOINT lppt) +{ + return SetBrushOrgEx(hDc, x, y, lppt); +} + +DWORD WINAPI SetLayout_WCECL(HDC hDc, DWORD l) +{ + return SetLayout(hDc, l); +} // Stubs diff --git a/COREDLL/winnls_wcecl.cpp b/COREDLL/winnls_wcecl.cpp new file mode 100644 index 0000000..5ac8359 --- /dev/null +++ b/COREDLL/winnls_wcecl.cpp @@ -0,0 +1,50 @@ +#include "stdafx.h" + +int WINAPI LCMapStringW_WCECL( + LCID Locale, + DWORD dwMapFlags, + LPCWSTR lpSrcStr, + int cchSrc, + LPWSTR lpDestStr, + int cchDest) +{ + return LCMapStringW( + Locale, + dwMapFlags, + lpSrcStr, + cchSrc, + lpDestStr, + cchDest); +} + +int WINAPI GetNumberFormatW_WCECL( + LCID Locale, + DWORD dwFlags, + LPCWSTR lpValue, + NUMBERFMTW* lpFormat, + LPWSTR lpNumberStr, + int cchNumber) +{ + return GetNumberFormatW( + Locale, + dwFlags, + lpValue, + lpFormat, + lpNumberStr, + cchNumber); +} + +LCID WINAPI GetUserDefaultLCID_WCECL() +{ + return GetUserDefaultLCID(); +} + +LANGID WINAPI GetSystemDefaultLangID_WCECL() +{ + return GetSystemDefaultLangID(); +} + +LCID WINAPI GetSystemDefaultLCID_WCECL() +{ + return GetSystemDefaultLCID(); +} \ No newline at end of file diff --git a/COREDLL/winuser_wcecl.cpp b/COREDLL/winuser_wcecl.cpp index 7605204..aff8f15 100644 --- a/COREDLL/winuser_wcecl.cpp +++ b/COREDLL/winuser_wcecl.cpp @@ -2,6 +2,8 @@ #include "stdafx.h" #include "winuser_wcecl.h" +#include +#include #define OK_BUTTON_UNIMPLEMENTED @@ -106,12 +108,41 @@ BOOL WINAPI IsDialogMessageW_WCECL( return result; } +/* Checks if the parameter Param is not in memory occupied by the output + parameter outParam. */ +template +static BOOL CheckOutParam(const T1* outParam, const T2& Param) +{ + SIZE_T outParamSize = sizeof(T1); + ULONG_PTR outParamPtr = (ULONG_PTR)outParam; + ULONG_PTR paramPtr = (ULONG_PTR)&Param; + + if (paramPtr >= outParamPtr && paramPtr < outParamPtr + outParamSize) + { + assert(FALSE); + } + + paramPtr += sizeof(T2) - 1; + if (paramPtr >= outParamPtr && paramPtr < outParamPtr + outParamSize) + { + assert(FALSE); + } + + return TRUE; +} + + BOOL WINAPI GetMessageW_WCECL( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax) { + assert(CheckOutParam(lpMsg, lpMsg)); + assert(CheckOutParam(lpMsg, hWnd)); + assert(CheckOutParam(lpMsg, wMsgFilterMin)); + assert(CheckOutParam(lpMsg, wMsgFilterMax)); + auto result = GetMessageW(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax); return result; } @@ -274,12 +305,102 @@ LRESULT WINAPI DefWindowProcW_WCECL( return result; } +static std::map WrappedWndProcs; + +BOOL GetWstringClassName(HWND hWnd, std::wstring& result) +{ + WCHAR wszBuffer[MAX_PATH]; + if (GetClassNameW(hWnd, wszBuffer, MAX_PATH) != 0) + { + result = std::wstring(wszBuffer); + return TRUE; + } + + return FALSE; +} + +LRESULT __stdcall WndProcWrapper( + HWND hWnd, + UINT uMessage, + WPARAM wParam, + LPARAM lParam) +{ + std::wstring className; + + if (GetWstringClassName(hWnd, className) == FALSE) + { + /* Perhaps the program should crash if an invalid classname somehow + gets to here? */ + return DefWindowProcW(hWnd, uMessage, wParam, lParam); + } + + if (WrappedWndProcs.find(className) != WrappedWndProcs.end()) + { + WNDPROCWCE lpfnWceWndProc = WrappedWndProcs.at(className); + return lpfnWceWndProc(hWnd, uMessage, wParam, lParam); + } + else + { + Assert32(TRUE); + } + + return DefWindowProcW(hWnd, uMessage, wParam, lParam); +} + +LRESULT __cdecl WndProcReverseWrapper( + HWND hWnd, + UINT uMessage, + WPARAM wParam, + LPARAM lParam) +{ + WNDPROC win32WndProc = (WNDPROC)GetWindowLongPtrW(hWnd, GWLP_WNDPROC); + return CallWindowProcW(win32WndProc, hWnd, uMessage, wParam, lParam); +} + +BOOL WINAPI GetClassInfoW_WCECL(HINSTANCE hInstance, LPCWSTR lpClassName, PWNDCLASSW_WCECL lpWceClass) +{ + WNDCLASSW win32class; + BOOL result; + + result = GetClassInfoW(hInstance, lpClassName, &win32class); + lpWceClass->style = win32class.style; + if (WrappedWndProcs.count(std::wstring(win32class.lpszClassName)) > 0) + { + lpWceClass->lpfnWndProc = WrappedWndProcs.at(std::wstring(win32class.lpszClassName)); + } + else + { + lpWceClass->lpfnWndProc = WndProcReverseWrapper; + } + lpWceClass->cbClsExtra = win32class.cbClsExtra; + lpWceClass->cbWndExtra = win32class.cbWndExtra; + lpWceClass->hInstance = win32class.hInstance; + lpWceClass->hIcon = win32class.hIcon; + lpWceClass->hCursor = win32class.hCursor; + lpWceClass->hbrBackground = win32class.hbrBackground; + lpWceClass->lpszMenuName = win32class.lpszMenuName; + lpWceClass->lpszClassName = win32class.lpszClassName; + + return result; +} + +WNDPROC WceclWrapWndProc(LPCWSTR wszClassName, WNDPROCWCE lpfnWceWndProc) +{ + if (WrappedWndProcs.count(std::wstring(wszClassName)) > 0) + { + return NULL; + } + + WrappedWndProcs[wszClassName] = lpfnWceWndProc; + return WndProcWrapper; +} + ATOM WINAPI RegisterClassW_WCECL(CONST WNDCLASSW_WCECL *lpWndClass) { WNDCLASSW wndClass = { }; wndClass.style = lpWndClass->style; - wndClass.lpfnWndProc = lpWndClass->lpfnWndProc; + wndClass.lpfnWndProc = WceclWrapWndProc(lpWndClass->lpszClassName, lpWndClass->lpfnWndProc); wndClass.cbClsExtra = lpWndClass->cbClsExtra; wndClass.cbWndExtra = lpWndClass->cbWndExtra; wndClass.hInstance = lpWndClass->hInstance; @@ -625,6 +746,13 @@ LRESULT WINAPI SendMessageW_WCECL( WPARAM wParam, LPARAM lParam) { + if (Msg == WM_USER + 81) + { + /* TODO */ + //Msg = TB_SETTOOLTIPS; + return 0; + } + auto result = SendMessageW(hWnd, Msg, wParam, lParam); return result; } @@ -649,5 +777,341 @@ HANDLE WINAPI LoadImageW_WCECL( return result; } +BOOL WINAPI EnableMenuItem_WCECL(HMENU hMenu, UINT uIDEnableItem, UINT uEnable) +{ + return EnableMenuItem(hMenu, uIDEnableItem, uEnable); +} + +HACCEL WINAPI LoadAcceleratorsW_WCECL(HINSTANCE hInstance, LPCWSTR lpTableName) +{ + return LoadAcceleratorsW(hInstance, lpTableName); +} + +int WINAPI TranslateAcceleratorW_WCECL(HWND hWnd, HACCEL hAccelTable, LPMSG lpMsg) +{ + return TranslateAcceleratorW(hWnd, hAccelTable, lpMsg); +} + +LPWSTR WINAPI CharUpperW_WCECL(LPWSTR lpString) +{ + return CharUpperW(lpString); +} + +BOOL WINAPI CheckMenuRadioItem_WCECL( + HMENU hMenu, + UINT first, + UINT last, + UINT check, + UINT flags) +{ + return CheckMenuRadioItem(hMenu, first, last, check, flags); +} + + +BOOL WINAPI UnregisterClassW_WCECL(LPCWSTR wszClassName, HINSTANCE hInstance) +{ + return UnregisterClassW(wszClassName, hInstance); +} + +BOOL WINAPI AdjustWindowRectEx_WCECL( + LPRECT lpRect, + DWORD dwStyle, + BOOL bMenu, + DWORD dwExStyle) +{ + return AdjustWindowRectEx(lpRect, dwStyle, bMenu, dwExStyle); +} + +BOOL WINAPI AppendMenuW_WCECL( + HMENU hMenu, + UINT uFlags, + ULONG_PTR uIDNewItem, + LPCWSTR lpNewItem) +{ + return AppendMenuW(hMenu, uFlags, uIDNewItem, lpNewItem); +} + +BOOL WINAPI UnionRect_WCECL(LPRECT lprcDst, const RECT* lpSrc1, const RECT* lpSrc2) +{ + return UnionRect(lprcDst, lpSrc1, lpSrc2); +} + + +BOOL WINAPI TransparentBlt_WCECL( + HDC hdcDest, + int xoriginDest, + int yoriginDest, + int wDest, + int hDest, + HDC hdcSrc, + int xoriginSrc, + int yoriginSrc, + int wSrc, + int hSrc, + UINT crTransparent) +{ + return TransparentBlt( + hdcDest, + xoriginDest, + yoriginDest, + wDest, + hDest, + hdcSrc, + xoriginSrc, + yoriginSrc, + wSrc, + hSrc, + crTransparent); +} + +BOOL WINAPI SystemParametersInfoW_WCECL( + UINT uiAction, + UINT uiParam, + PVOID pvParam, + UINT fWinIni) +{ + return SystemParametersInfoW(uiAction, uiParam, pvParam, fWinIni); +} + + +LONG WINAPI SetWindowLongW_WCECL(HWND hWnd, int nIndex, LONG dwNewLong) +{ + if (nIndex == GWL_WNDPROC) + { + Assert32Ex(TRUE, L"Unimplemented"); + } + return SetWindowLongW(hWnd, nIndex, dwNewLong); +} + +BOOL WINAPI SetWindowTextW_WCECL(HWND hWnd, LPCWSTR lpString) +{ + return SetWindowTextW(hWnd, lpString); +} + +BOOL WINAPI ShowCaret_WCECL(HWND hWnd) +{ + return ShowCaret(hWnd); +} + +BOOL WINAPI SetScrollRange_WCECL( + HWND hWnd, + int nBar, + int nMinPos, + int nMaxPos, + BOOL bRedraw) +{ + return SetScrollRange(hWnd, nBar, nMinPos, nMaxPos, bRedraw); +} + +int WINAPI ClientToScreen_WCECL(HWND hWnd, LPPOINT lpPoint) +{ + return ClientToScreen(hWnd, lpPoint); +} + +BOOL WINAPI ScreenToClient_WCECL(HWND hWnd, LPPOINT lpPoint) +{ + return ScreenToClient(hWnd, lpPoint); +} + +BOOL WINAPI CloseClipboard_WCECL() +{ + return CloseClipboard(); +} + +BOOL WINAPI OpenClipboard_WCECL(HWND hWndNewOrder) +{ + return OpenClipboard(hWndNewOrder); +} + +SHORT WINAPI GetAsyncKeyState_WCECL(int key) +{ + return GetAsyncKeyState(key); +} + +HANDLE WINAPI GetClipboardData_WCECL(UINT uFormat) +{ + return GetClipboardData(uFormat); +} + +BOOL WINAPI GetClipCursor_WCECL(LPRECT lpRect) +{ + return GetClipCursor(lpRect); +} + +int WINAPI GetDlgCtrlID_WCECL(HWND hWnd) +{ + return GetDlgCtrlID(hWnd); +} + +HWND WINAPI GetFocus_WCECL() +{ + return GetFocus(); +} + +HWND WINAPI GetForegroundWindow_WCECL() +{ + return GetForegroundWindow(); +} + +BOOL WINAPI GetUpdateRect_WCECL(HWND hWnd, LPRECT lpRect, BOOL bErase) +{ + return GetUpdateRect(hWnd, lpRect, bErase); +} + +int WINAPI GetUpdateRgn_WCECL(HWND hWnd, HRGN hRgn, BOOL bErase) +{ + return GetUpdateRgn(hWnd, hRgn, bErase); +} + +HWND WINAPI GetWindow_WCECL(HWND hWnd, UINT uCmd) +{ + return GetWindow(hWnd, uCmd); +} + +LONG WINAPI GetWindowLongW_WCECL(HWND hWnd, int nIndex) +{ + return GetWindowLongW(hWnd, nIndex); +} + +int WINAPI GetWindowTextLengthW_WCECL(HWND hWnd) +{ + return GetWindowTextLengthW(hWnd); +} + +int WINAPI GetWindowTextW_WCECL(HWND hWnd, LPWSTR lpString, int nMaxCount) +{ + return GetWindowTextW(hWnd, lpString, nMaxCount); +} + +BOOL WINAPI HideCaret_WCECL(HWND hWnd) +{ + return HideCaret(hWnd); +} + +HANDLE WINAPI GetPropW_WCECL(HWND hWnd, LPCWSTR lpString) +{ + return GetPropW(hWnd, lpString); +} + +BOOL WINAPI GetScrollInfo_WCECL(HWND hWnd, int nBar, LPSCROLLINFO lpsi) +{ + return GetScrollInfo(hWnd, nBar, lpsi); +} + +DWORD WINAPI GetMessagePos_WCECL() +{ + return GetMessagePos(); +} + +HWND WINAPI GetNextDlgTabItem_WCECL(HWND hDlg, HWND hCtl, BOOL bPrevious) +{ + return GetNextDlgTabItem(hDlg, hCtl, bPrevious); +} + +HWND WINAPI GetParent_WCECL(HWND hWnd) +{ + return GetParent(hWnd); +} + +BOOL WINAPI MessageBeep_WCECL(UINT uType) +{ + return MessageBeep(uType); +} + +HMONITOR WINAPI MonitorFromPoint_WCECL(POINT pt, DWORD dwFlags) +{ + return MonitorFromPoint(pt, dwFlags); +} + +int WINAPI MoveWindow_WCECL( + HWND hWnd, + int x, + int y, + int nWidth, + int nHeight, + BOOL bRepaint) +{ + return MoveWindow(hWnd, x, y, nWidth, nHeight, bRepaint); +} + +DWORD WINAPI MsgWaitForMultipleObjectsEx_WCECL( + DWORD nCount, + const HANDLE* pHandles, + DWORD dwMilliseconds, + DWORD dwWakeMask, + DWORD dwFlags) +{ + return MsgWaitForMultipleObjectsEx( + nCount, + pHandles, + dwMilliseconds, + dwWakeMask, + dwFlags); +} + +BOOL WINAPI OffsetRect_WCECL(LPRECT lpRect, int x, int y) +{ + return OffsetRect(lpRect, x, y); +} + +BOOL WINAPI RedrawWindow_WCECL( + HWND hWnd, + const RECT* lprcUpdate, + HRGN hrgnUpdate, + UINT flags) +{ + return RedrawWindow(hWnd, lprcUpdate, hrgnUpdate, flags); +} + +int WINAPI ScrollWindowEx_WCECL( + HWND hWnd, + int dx, + int dy, + const RECT* prcScroll, + const RECT* prcClip, + HRGN hrgnUpdate, + LPRECT prcUpdate, + UINT flags) +{ + return ScrollWindowEx( + hWnd, + dx, + dy, + prcScroll, + prcClip, + hrgnUpdate, + prcUpdate, + flags); +} + +LRESULT WINAPI SendDlgItemMessageW_WCECL( + HWND hDlg, + int nIDDlgItem, + UINT Msg, + WPARAM wParam, + LPARAM lParam) +{ + return SendDlgItemMessageW( + hDlg, + nIDDlgItem, + Msg, + wParam, + lParam); +} + +HCURSOR WINAPI SetCursor_WCECL(HCURSOR hCursor) +{ + return SetCursor(hCursor); +} + +BOOL WINAPI SendNotifyMessageW_WCECL( + HWND hWnd, + UINT uMessage, + WPARAM wParam, + LPARAM lParam) +{ + return SendNotifyMessageW(hWnd, uMessage, wParam, lParam); +} + // Stubs Stub(GetGestureInfo);