45 ERR(
"Failed to open file for GetPhysicalFileSize\n");
59 ERR(
"NtQueryInformationFile failed for %S (Status: %08lX)\n", pszPath,
Status);
108 pVirtSize->
u.LowPart =
Data.nFileSizeLow;
109 pVirtSize->
u.HighPart =
Data.nFileSizeHigh;
113 pPhysSize->
u.LowPart =
Data.nFileSizeLow;
114 pPhysSize->
u.HighPart =
Data.nFileSizeHigh;
117 return Data.dwFileAttributes;
125 WARN(
"GetFileVersionInfoSize %ls failed\n", pwszPath);
132 ERR(
"HeapAlloc failed bytes %x\n", cbInfo);
138 ERR(
"GetFileVersionInfoW failed\n");
146 ERR(
"VerQueryValueW failed\n");
184 ERR(
"VerQueryValueW %ls failed\n", pwszName);
186 TRACE(
"%ls: %ls\n", pwszName, pwszResult);
211 ERR(
"VerLanguageNameW failed\n");
225 WCHAR wszDecimalSep[8], wszThousandSep[8];
236 WCHAR wszGrouping[12];
243 for (
INT i = 0;
i < cchGrouping;
i++)
245 WCHAR wch = wszGrouping[
i];
247 if (wch >=
L'0' && wch <=
L'9')
249 else if (wch !=
L';')
270 return cchResult - 1;
282 LPWSTR pwszEnd = pwszResult + cchWritten;
283 size_t cchRemaining = cchResultMax - cchWritten;
286 cchRemaining -= cchWritten;
288 return cchResultMax - cchRemaining;
316 LPWSTR pwszEnd = pwszResult + cchWritten;
317 size_t cchRemaining = cchResultMax - cchWritten;
322 pwszEnd += cchWritten;
323 cchRemaining -= cchWritten;
344 StringCbCatW(wszBuf,
sizeof(wszBuf),
L"\\shell\\open\\command");
365 RECT rcIcon, rcDescr;
376 rcDescr.
left + cxOffset, rcDescr.
top,
381 ERR(
"Failed to extract icon\n");
387 VerInfo.
Load(wszPath);
396 pwszFilename[0] =
towupper(pwszFilename[0]);
403 WARN(
"RegGetValueW %ls failed\n", wszBuf);
405 WARN(
"RegGetValueW %ls failed\n", pwszExt);
431 if (hDlgCtrl ==
NULL)
451 size_t cchRemaining = 0;
522 size_t cchRemaining = cchResult;
523 LPWSTR pwszEnd = pwszResult;
528 ERR(
"GetDateFormatW failed\n");
529 cchRemaining -= cchWritten;
530 pwszEnd += cchWritten;
538 ERR(
"GetTimeFormatW failed\n");
623 ERR(
"Unreliable size on disk\n");
674 RECT rectIdol, rectToAdjust;
721 TRACE(
"WM_INITDIALOG hwnd %p lParam %p ppsplParam %S\n", hwndDlg,
lParam, ppsp->
lParam);
725 pFileDefExt->InitGeneralPage(hwndDlg);
769 ERR(
"SetFileAttributesW failed\n");
776 UINT cchFilenameMax =
_countof(wszBuf) - (pwszFilename - wszBuf);
780 ERR(
"MoveFileW failed\n");
859 fAttrib = pWFD->dwFileAttributes;
863 fAttrib =
GetFileStats(pszPath, &nVirtSize, &nPhysSize);
887 else if (!Stats.
szType[0])
919 if (nTickNow - pStats->
nTick >= 500)
921 pStats->
nTick = nTickNow;
925 wcscpy(pszFile, wfd.cFileName);
988 #define SetMultifileDlgFileAttr(attr, id) do \
990 if (Stats.fAttribSet & (attr)) \
991 CheckDlgButton(m_hWndDirStatsDlg, (id), BST_CHECKED); \
992 else if (Stats.fAttribAll & (attr)) \
993 CheckDlgButton(m_hWndDirStatsDlg, (id), BST_INDETERMINATE); \
998 #undef SetMultifileDlgFileAttr
1023 static const WORD idAttr[] = { 14021, 14022, 14023 };
1031 static const WORD idUnused[] = { 14026, 14027, 14028, 14014, 14015 };
1062 pFileDefExt->InitMultifilePage(hwndDlg);
1089 WCHAR wszVersion[256];
1148 if (hwndDlg ==
NULL || pwszName ==
NULL)
1175 if (hwndDlg ==
NULL || pwszName ==
NULL)
1208 if (ppsp ==
NULL || !ppsp->lParam)
1211 TRACE(
"WM_INITDIALOG hwnd %p lParam %p ppsplParam %x\n", hwndDlg,
lParam, ppsp->lParam);
1226 if (pwszData ==
NULL)
1229 CString
str(pwszData);
1262 if (ppsp ==
NULL || !ppsp->lParam)
1265 TRACE(
"WM_INITDIALOG hwnd %p lParam %p ppsplParam %x\n", hwndDlg,
lParam, ppsp->lParam);
1267 pFileDefExt =
reinterpret_cast<CFileDefExt *
>(ppsp->lParam);
1491 m_bDir(
FALSE), m_bMultifile(
FALSE), m_cFiles(0), m_cFolders(0)
1516 TRACE(
"%p %p %p %p\n",
this, pidlFolder, pDataObj, hkeyProgID);
1525 CDataObjectHIDA cida(pDataObj);
1536 format.dwAspect = DVASPECT_CONTENT;
1538 format.tymed = TYMED_HGLOBAL;
1546 ERR(
"DragQueryFileW failed\n");
1590 &PropSheetPageLifetimeCallback<CFileDefExt>);
#define shell32_hInstance
#define InterlockedIncrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void shell(int argc, const char *argv[])
static DWORD WINAPI _InitializeMultifileThreadProc(LPVOID lpParameter)
static INT_PTR CALLBACK VersionPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
STDMETHOD() ReplacePage(UINT uPageID, LPFNADDPROPSHEETPAGE pfnReplacePage, LPARAM lParam) override
static BOOL GetFileTimeString(LPFILETIME lpFileTime, LPWSTR pwszResult, UINT cchResult)
BOOL InitFileAttr(HWND hwndDlg)
void OnFolderCustDestroy(HWND hwndDlg)
BOOL InitFileType(HWND hwndDlg)
WCHAR m_szFolderIconPath[MAX_PATH]
VOID InitOpensWithField(HWND hwndDlg)
void UpdateDirStatsResults()
BOOL InitVersionPage(HWND hwndDlg)
STDMETHOD() InvokeCommand(LPCMINVOKECOMMANDINFO lpici) override
LONG volatile m_Destroyed
static INT_PTR CALLBACK GeneralPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
void UpdateFolderIcon(HWND hwndDlg)
BOOL OnFolderCustApply(HWND hwndDlg)
BOOL InitFilePath(HWND hwndDlg)
BOOL InitFolderCustomizePage(HWND hwndDlg)
static DWORD WINAPI _CountFolderAndFilesThreadProc(LPVOID lpParameter)
ULARGE_INTEGER m_DirSizeOnDisc
STDMETHOD() AddPages(LPFNADDPROPSHEETPAGE pfnAddPage, LPARAM lParam) override
WCHAR m_wszPath[MAX_PATH]
static INT_PTR CALLBACK FolderCustomizePageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
void OnFolderCustChangeIcon(HWND hwndDlg)
void CountFolderAndFiles()
STDMETHOD() Initialize(PCIDLIST_ABSOLUTE pidlFolder, IDataObject *pdtobj, HKEY hkeyProgID) override
STDMETHOD() GetCommandString(UINT_PTR idCmd, UINT uType, UINT *pwReserved, LPSTR pszName, UINT cchMax) override
BOOL InitGeneralPage(HWND hwndDlg)
static INT_PTR CALLBACK MultifilePageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
void InitMultifilePageThread()
CFileVersionInfo m_VerInfo
BOOL AddVersionString(HWND hwndDlg, LPCWSTR pwszName)
STDMETHOD() QueryContextMenu(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) override
void InitDirStats(struct DIRTREESTATS *pStats)
BOOL SetVersionLabel(HWND hwndDlg, DWORD idCtrl, LPCWSTR pwszName)
void InitMultifilePage(HWND hwndDlg)
LPITEMIDLIST m_pidlFolder
BOOL WalkDirTree(PCWSTR pszPath, struct DIRTREESTATS *pStats, WIN32_FIND_DATAW *pWFD)
BOOL Load(LPCWSTR pwszPath)
LPCWSTR GetString(LPCWSTR pwszName)
VS_FIXEDFILEINFO * GetFixedInfo()
#define NT_SUCCESS(StatCode)
LSTATUS WINAPI RegGetValueW(HKEY hKey, LPCWSTR pszSubKey, LPCWSTR pszValue, DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData)
#define INVALID_HANDLE_VALUE
DWORD WINAPI ExpandEnvironmentStringsW(IN LPCWSTR lpSrc, IN LPWSTR lpDst, IN DWORD nSize)
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
BOOL WINAPI SetFileAttributesW(LPCWSTR lpFileName, DWORD dwFileAttributes)
BOOL WINAPI GetFileAttributesExW(LPCWSTR lpFileName, GET_FILEEX_INFO_LEVELS fInfoLevelId, LPVOID lpFileInformation)
HANDLE WINAPI FindFirstFileW(IN LPCWSTR lpFileName, OUT LPWIN32_FIND_DATAW lpFindFileData)
BOOL WINAPI FindClose(HANDLE hFindFile)
BOOL WINAPI FindNextFileW(IN HANDLE hFindFile, OUT LPWIN32_FIND_DATAW lpFindFileData)
BOOL WINAPI MoveFileW(IN LPCWSTR lpExistingFileName, IN LPCWSTR lpNewFileName)
BOOL WINAPI FileTimeToSystemTime(IN CONST FILETIME *lpFileTime, OUT LPSYSTEMTIME lpSystemTime)
BOOL WINAPI FileTimeToLocalFileTime(IN CONST FILETIME *lpFileTime, OUT LPFILETIME lpLocalFileTime)
UINT WINAPI GetPrivateProfileIntW(LPCWSTR section, LPCWSTR entry, INT def_val, LPCWSTR filename)
BOOL WINAPI WritePrivateProfileStringW(LPCWSTR section, LPCWSTR entry, LPCWSTR string, LPCWSTR filename)
INT WINAPI GetPrivateProfileStringW(LPCWSTR section, LPCWSTR entry, LPCWSTR def_val, LPWSTR buffer, UINT len, LPCWSTR filename)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
DWORD WINAPI VerLanguageNameW(DWORD wLang, LPWSTR szLang, DWORD nSize)
INT WINAPI GetLocaleInfoW(LCID lcid, LCTYPE lctype, LPWSTR buffer, INT len)
void WINAPI PathUnquoteSpacesW(WCHAR *path)
WCHAR *WINAPI PathRemoveBackslashW(WCHAR *path)
WCHAR *WINAPI PathFindFileNameW(const WCHAR *path)
LPWSTR WINAPI PathFindExtensionW(const WCHAR *path)
int WINAPI PathParseIconLocationW(WCHAR *path)
BOOL WINAPI PathFileExistsW(const WCHAR *path)
INT WINAPI DECLSPEC_HOTPATCH LoadStringW(HINSTANCE instance, UINT resource_id, LPWSTR buffer, INT buflen)
ULONG WINAPI DECLSPEC_HOTPATCH GetTickCount(void)
BOOL WINAPI GetFileVersionInfoW(LPCWSTR filename, DWORD handle, DWORD datasize, LPVOID data)
BOOL WINAPI VerQueryValueW(LPCVOID pBlock, LPCWSTR lpSubBlock, LPVOID *lplpBuffer, PUINT puLen)
DWORD WINAPI GetFileVersionInfoSizeW(LPCWSTR filename, LPDWORD handle)
void WINAPI ReleaseStgMedium(STGMEDIUM *pmedium)
BOOL WINAPI PickIconDlg(HWND hWndOwner, LPWSTR lpstrFile, UINT nMaxFile, INT *lpdwIconIndex)
HRESULT SHELL_DisplayNameOf(_In_opt_ IShellFolder *psf, _In_ LPCITEMIDLIST pidl, _In_opt_ UINT Flags, _Out_ PWSTR *ppStr)
HRESULT DataObject_GetHIDACount(IDataObject *pdo)
static HRESULT AddPropSheetPage(HPROPSHEETPAGE hPage, LPFNSVADDPROPSHEETPAGE pfnAddPage, LPARAM lParam)
BOOL PathIsDotOrDotDotW(_In_ LPCWSTR pszPath)
void WINAPI SHFree(LPVOID pv)
UINT WINAPI DragQueryFileW(HDROP hDrop, UINT lFile, LPWSTR lpszwFile, UINT lLength)
LPVOID WINAPI SHAlloc(SIZE_T len)
BOOL WINAPI PathIsDirectoryW(LPCWSTR lpszPath)
LPWSTR WINAPI StrFormatByteSizeW(LONGLONG llBytes, LPWSTR lpszDest, UINT cchMax)
BOOL WINAPI SHCreateThread(LPTHREAD_START_ROUTINE pfnThreadProc, VOID *pData, DWORD dwFlags, LPTHREAD_START_ROUTINE pfnCallback)
#define FAILED_UNEXPECTEDLY
BOOL GetPhysicalFileSize(LPCWSTR pszPath, PULARGE_INTEGER Size)
static UINT ProcessDirStatsItem(PCWSTR pszPath, DIRTREESTATS &Stats, WIN32_FIND_DATAW *pWFD)
static const WCHAR s_szShellClassInfo[]
static BOOL SH32_GetFileFindData(PCWSTR pszPath, WIN32_FIND_DATAW *pWFD)
UINT SH_FormatInteger(LONGLONG Num, LPWSTR pwszResult, UINT cchResultMax)
#define SetMultifileDlgFileAttr(attr, id)
LPWSTR SH_FormatFileSizeWithBytes(const PULARGE_INTEGER lpQwSize, LPWSTR pwszResult, UINT cchResultMax)
EXTERN_C BOOL PathIsExeW(LPCWSTR lpszPath)
static const WCHAR s_szIconFile[]
UINT SH_FormatByteSize(LONGLONG cbSize, LPWSTR pwszResult, UINT cchResultMax)
static UINT GetFileStats(HANDLE hFile, PULARGE_INTEGER pVirtSize, PULARGE_INTEGER pPhysSize)
static const WCHAR s_szIconResource[]
static const WCHAR s_szIconIndex[]
_Must_inspect_result_ _Out_ PLARGE_INTEGER FileSize
GLuint GLuint GLsizei count
GLenum GLuint GLenum GLsizei const GLchar * buf
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
UINT WINAPI ExtractIconExW(LPCWSTR lpszFile, INT nIconIndex, HICON *phiconLarge, HICON *phiconSmall, UINT nIcons)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
HRESULT GetData([in, unique] FORMATETC *pformatetcIn, [out] STGMEDIUM *pmedium)
#define RTL_FIELD_SIZE(type, field)
#define FILE_FLAG_BACKUP_SEMANTICS
#define FILE_FLAG_OPEN_NO_RECALL
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
static DWORD DWORD void LPSTR DWORD cch
static OUT PIO_STATUS_BLOCK IoStatusBlock
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
struct _PSP * HPROPSHEETPAGE
unsigned __int3264 UINT_PTR
#define FILE_ATTRIBUTE_READONLY
#define FILE_READ_ATTRIBUTES
#define FILE_ATTRIBUTE_HIDDEN
#define FILE_ATTRIBUTE_SYSTEM
NTSYSAPI NTSTATUS NTAPI NtQueryInformationFile(IN HANDLE hFile, OUT PIO_STATUS_BLOCK pIoStatusBlock, OUT PVOID FileInformationBuffer, IN ULONG FileInformationBufferLength, IN FILE_INFORMATION_CLASS FileInfoClass)
#define FILE_SHARE_DELETE
#define FILE_ATTRIBUTE_ARCHIVE
#define FILE_ATTRIBUTE_DIRECTORY
#define LOCALE_USER_DEFAULT
void WINAPI ILFree(LPITEMIDLIST pidl)
LPITEMIDLIST * _ILCopyCidaToaPidl(LPITEMIDLIST *pidl, const CIDA *cida)
LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
void _ILFreeaPidl(LPITEMIDLIST *apidl, UINT cidl)
#define PSNRET_INVALID_NOCHANGEPAGE
#define PropSheet_Changed(d, w)
#define PropSheet_QuerySiblings(d, w, l)
struct _PROPSHEETPAGEW * LPPROPSHEETPAGEW
BOOL(CALLBACK * LPFNADDPROPSHEETPAGE)(HPROPSHEETPAGE, LPARAM)
struct _PSHNOTIFY * LPPSHNOTIFY
#define PSM_QUERYSIBLINGS
#define SUBLANG_ENGLISH_US
DWORD_PTR WINAPI SHGetFileInfoW(LPCWSTR path, DWORD dwFileAttributes, SHFILEINFOW *psfi, UINT sizeofpsfi, UINT flags)
#define SHGFI_USEFILEATTRIBUTES
#define FileStandardInformation
@ OAIF_FORCE_REGISTRATION
#define PathRemoveExtension
#define PathSearchAndQualify
#define IDC_FOLDERCUST_CHANGE_ICON
#define IDD_FILE_PROPERTIES
#define IDC_FOLDERCUST_CHECKBOX
#define IDC_FOLDERCUST_COMBOBOX
#define IDC_FOLDERCUST_RESTORE_DEFAULTS
#define IDD_FOLDER_CUSTOMIZE
#define IDS_MULTIPLETYPES
#define IDI_SHELL_MULTIPLE_FILES
#define IDC_FOLDERCUST_ICON
#define IDS_EXE_DESCRIPTION
#define IDD_FOLDER_PROPERTIES
#define IDS_VARIOUSFOLDERS
#define IDC_FOLDERCUST_CHOOSE_PIC
STRSAFEAPI StringCchPrintfW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszFormat,...)
STRSAFEAPI StringCchCopyExW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc, STRSAFE_LPWSTR *ppszDestEnd, size_t *pcchRemaining, STRSAFE_DWORD dwFlags)
STRSAFEAPI StringCchPrintfExW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPWSTR *ppszDestEnd, size_t *pcchRemaining, STRSAFE_DWORD dwFlags, STRSAFE_LPCWSTR pszFormat,...)
STRSAFEAPI StringCbCopyW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszSrc)
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
STRSAFEAPI StringCbPrintfW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszFormat,...)
STRSAFEAPI StringCchCopyNW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc, size_t cchToCopy)
STRSAFEAPI StringCbCatW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszSrc)
PULARGE_INTEGER pTotPhysSize
WCHAR szType[max(100, RTL_FIELD_SIZE(SHFILEINFOA, szTypeName))]
PULARGE_INTEGER pTotVirtSize
struct _ULARGE_INTEGER::@4308 u
OPEN_AS_INFO_FLAGS oaifInFlags
struct _LARGE_INTEGER::@2416 u
#define VS_FF_SPECIALBUILD
#define VS_FF_PRIVATEBUILD
#define INVALID_FILE_ATTRIBUTES
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
HPROPSHEETPAGE SH_CreatePropertySheetPage(WORD wDialogId, DLGPROC pfnDlgProc, LPARAM lParam, LPCWSTR pwszTitle)
HPROPSHEETPAGE SH_CreatePropertySheetPageEx(WORD wDialogId, DLGPROC pfnDlgProc, LPARAM lParam, LPCWSTR pwszTitle, LPFNPSPCALLBACK Callback)
UINT WINAPI GetDlgItemTextW(HWND hDlg, int nIDDlgItem, LPWSTR lpString, int nMaxCount)
DWORD WINAPI GetLastError(void)
_Reserved_ DWORD _In_ DWORD _Out_ DWORD _Out_writes_bytes_to_opt_ pcbTypeName LPSTR szTypeName
#define HKEY_CLASSES_ROOT
#define GetWindowLongPtrW
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
BOOL WINAPI SetDlgItemTextW(_In_ HWND, _In_ int, _In_ LPCWSTR)
int WINAPI MapWindowPoints(_In_opt_ HWND hWndFrom, _In_opt_ HWND hWndTo, _Inout_updates_(cPoints) LPPOINT lpPoints, _In_ UINT cPoints)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
LRESULT WINAPI SendDlgItemMessageW(_In_ HWND, _In_ int, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
HWND WINAPI GetParent(_In_ HWND)
#define MAKEINTRESOURCEW(i)
#define SetWindowLongPtrW
#define SendDlgItemMessage
BOOL WINAPI DestroyWindow(_In_ HWND)
HICON WINAPI LoadIconW(_In_opt_ HINSTANCE hInstance, _In_ LPCWSTR lpIconName)
int WINAPI GetSystemMetrics(_In_ int)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI DestroyIcon(_In_ HICON)