1223{
1231
1232
1233 memset(&DummyPreviewWindowClass, 0,
sizeof(DummyPreviewWindowClass));
1234 DummyPreviewWindowClass.
cbSize =
sizeof(DummyPreviewWindowClass);
1235 DummyPreviewWindowClass.
lpszClassName =
L"DummyPreviewWindowClass";
1241
1242 hwndDummy =
CreateWindowExW(
WS_EX_DLGMODALFRAME,
L"DummyPreviewWindowClass",
NULL,
WS_OVERLAPPEDWINDOW |
WS_VSCROLL, 30, 30, 300, 150, 0, 0,
hDllInst,
NULL);
1243 if (!hwndDummy)
1245
1246 hres =
OpenThemeFile(pszThemeFileName, pszColorName, pszSizeName, &hThemeFile,0);
1249
1250
1263
1266 INT previewWidth = rcAdjPreview.
right - rcAdjPreview.
left;
1267 INT previewHeight = rcAdjPreview.
bottom - rcAdjPreview.
top;
1268
1269
1273
1274
1277
1279 RECT rcWindowClient;
1285
1286 if (textFont)
1288
1292 {
1293 DTTOPTS dttOpts = { sizeof(dttOpts) };
1294 dttOpts.dwFlags = DTT_TEXTCOLOR;
1296
1298 }
1299
1300
1304
1307
1309
1310 INT msgBoxHCenter = rcAdjPreview.
left + (previewWidth / 2);
1311 INT msgBoxVCenter = rcAdjPreview.
top + (previewHeight / 2);
1312
1314
1315
1316 if (hBtnTheme)
1317 {
1318 INT btnCenterH = rcWindowClient.
left + ((rcWindowClient.
right - rcWindowClient.
left) / 2);
1319 INT btnCenterV = rcWindowClient.
top + ((rcWindowClient.
bottom - rcWindowClient.
top) / 2);
1320 RECT rcBtn = {btnCenterH - 40, btnCenterV - 15, btnCenterH + 40, btnCenterV + 15};
1326 {
1331 }
1332
1336
1341 }
1342
1347
1348
1351
1353}
INT WINAPI DECLSPEC_HOTPATCH LoadStringW(HINSTANCE instance, UINT resource_id, LPWSTR buffer, INT buflen)
HRESULT WINAPI DrawThemeTextEx(_In_ HTHEME hTheme, _In_ HDC hdc, _In_ int iPartId, _In_ int iStateId, _In_ LPCWSTR pszText, _In_ int iCharCount, _In_ DWORD dwTextFlags, _Inout_ LPRECT pRect, _In_ const DTTOPTS *options)
HRESULT WINAPI DrawThemeBackground(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, const RECT *pRect, const RECT *pClipRect)
HRESULT WINAPI DrawThemeText(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, LPCWSTR pszText, int iCharCount, DWORD dwTextFlags, DWORD dwTextFlags2, const RECT *pRect)
COLORREF WINAPI GetThemeSysColor(HTHEME hTheme, int iColorID)
HRESULT WINAPI GetThemeSysFont(HTHEME hTheme, int iFontID, LOGFONTW *plf)
void ThemeCleanupDrawContext(PDRAW_CONTEXT pcontext)
#define NC_PREVIEW_MSGBOX_HALF_WIDTH
#define NC_PREVIEW_MSGBOX_OFFSET_Y
VOID SetWindowResourceText(_In_ HWND hwnd, _In_ UINT uID)
#define NC_PREVIEW_MSGBOX_OFFSET_X
static void DrawWindowForNCPreview(_In_ HDC hDC, _In_ PDRAW_CONTEXT pcontext, _In_ INT left, _In_ INT top, _In_ INT right, _In_ INT bottom, _In_ INT clientAreaColor, _Out_opt_ LPRECT prcClient)
HRESULT WINAPI GetThemeFont(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, int iPropId, LOGFONTW *pFont)
HRESULT WINAPI GetThemeMargins(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, int iPropId, RECT *prc, MARGINS *pMargins)
HTHEME WINAPI OpenThemeDataFromFile(HTHEMEFILE hThemeFile, HWND hwnd, LPCWSTR pszClassList, DWORD flags)
HRESULT WINAPI OpenThemeFile(LPCWSTR pszThemeFileName, LPCWSTR pszColorName, LPCWSTR pszSizeName, HTHEMEFILE *hThemeFile, DWORD unknown)
HRESULT WINAPI CloseThemeData(HTHEME hTheme)
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
static HTHEME(WINAPI *pOpenThemeDataEx)(HWND
#define WS_OVERLAPPEDWINDOW
#define WS_EX_DLGMODALFRAME
#define TMT_CONTENTMARGINS
#define SelectFont(hdc, hfont)
HFONT WINAPI CreateFontIndirectW(_In_ const LOGFONTW *)
HRGN WINAPI CreateRectRgnIndirect(_In_ LPCRECT)
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI GetWindowInfo(_In_ HWND, _Inout_ PWINDOWINFO)
HWND WINAPI CreateWindowExW(_In_ DWORD dwExStyle, _In_opt_ LPCWSTR lpClassName, _In_opt_ LPCWSTR lpWindowName, _In_ DWORD dwStyle, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam)
ATOM WINAPI RegisterClassExW(_In_ CONST WNDCLASSEXW *)
BOOL WINAPI UnregisterClassW(_In_ LPCWSTR, HINSTANCE)
BOOL WINAPI DestroyWindow(_In_ HWND)