76 ERR(
"CreateFileW failed for \"%S\" with error %lu!\n", pAddJobInfo1->
Path, dwErrorCode);
85 ERR(
"GetJobW failed with error %lu!\n", dwErrorCode);
94 ERR(
"HeapAlloc failed!\n");
102 ERR(
"GetJobW failed with error %lu!\n", dwErrorCode);
116 ERR(
"SetJobW failed with error %lu!\n", dwErrorCode);
137 DocInfoContainer.
Level = 1;
147 ERR(
"_RpcStartDocPrinter failed with exception code %lu!\n", dwErrorCode);
160 TRACE(
"AbortPrinter(%p)\n", hPrinter);
190 ERR(
"_RpcAbortPrinter failed with exception code %lu!\n", dwErrorCode);
224 ERR(
"Level = %d, unsupported!\n",
Level);
326 DevModeContainer.
cbBuf = 0;
329 SecurityContainer.
cbBuf = 0;
375 dwErrorCode =
_RpcAddPrinter(
pName, &PrinterContainer, &DevModeContainer, &SecurityContainer, &hPrinter );
390 ERR(
"HeapAlloc failed!\n");
400 hHandle = (
HANDLE)pHandle;
416 TRACE(
"ClosePrinter(%p)\n", hPrinter);
433 ERR(
"_RpcClosePrinter failed with exception code %lu!\n", dwErrorCode);
457 TRACE(
"DeletePrinter(%p)\n", hPrinter);
474 ERR(
"_RpcDeletePrinter failed with exception code %lu!\n", dwErrorCode);
512 FIXME(
"IGPD : Get Printer Driver Config File : %S\n",
pdi->pConfigFile);
523 while ( iTries < 2 );
536 FIXME(
"DeviceCapabilitiesA(%s, %s, %hu, %p, %p)\n",
pDevice, pPort, fwCapability, pOutput, pDevMode);
547 ERR(
"HeapAlloc failed!\n");
579 FIXME(
"DeviceCapabilitiesW(%S, %S, %hu, %p, %p)\n",
pDevice, pPort, fwCapability, pOutput, pDevMode);
585 ERR(
"DeviceCapabilitiesW : Devode Invalid\n");
660 FIXME(
"DocumentEvent(%p, %p, %lu, %lu, %p, %lu, %p)\n", hPrinter,
hdc,
iEsc, cbIn, pvIn, cbOut, pvOut);
671 LONG lReturnValue = -1;
674 FIXME(
"DocumentPropertiesA(%p, %p, %s, %p, %p, %lu)\n",
hWnd, hPrinter, pDeviceName, pDevModeOutput, pDevModeInput, fMode);
685 ERR(
"HeapAlloc failed!\n");
714 ERR(
"HeapAlloc failed!\n");
720 FIXME(
"lReturnValue from DocumentPropertiesW is '%ld'.\n", lReturnValue);
722 if (lReturnValue < 0)
724 FIXME(
"DocumentPropertiesW failed!\n");
758 ERR(
"Failed to allocate PRINTER_INFO_9W of %u bytes\n", needed);
779 FIXME(
"CreateUIUserData\n");
790 return *puserdata != 0;
798 FIXME(
"DestroyUIUserData\n");
839 ERR(
"Failed to allocate PRINTER_INFO_2W of %u bytes\n", needed);
849 if (pdphdr->
cbOut < cbDevMode)
851 ERR(
"cbOut (%lu) < cbDevMode(%u)\n", pdphdr->
cbOut, cbDevMode);
924 FIXME(
"DocumentPropertySheets(%p, 0x%lx)\n", pCPSUIInfo,
lparam);
928 if ( !pCPSUIInfo &&
lparam )
943 FIXME(
"DPS : fpDocumentPropertySheets(%p, 0x%lx) pdmOut %p\n", pCPSUIInfo,
lparam, pdphdr->
pdmOut);
945 FIXME(
"DPS : fpDocumentPropertySheets result %d cbOut %d\n",
Result, pdphdr->
cbOut);
956 FIXME(
"IDPS : Using ReactOS backup!!! DevMode Size %d\n",
Result);
997 switch ( pCPSUIInfo->
Reason )
1001 FIXME(
"DocPS : PROPSHEETUI_REASON_INIT\n");
1021 FIXME(
"DocPS : PROPSHEETUI_REASON_INIT Fail\n");
1028 FIXME(
"DocPS : PROPSHEETUI_REASON_GET_INFO_HEADER\n");
1045 FIXME(
"DocPS : PROPSHEETUI_REASON_DESTROY\n");
1051 FIXME(
"DocPS : PROPSHEETUI_REASON_SET_RESULT\n");
1056 if ( pCPSUIInfo->
Result > 0 )
1074 FIXME(
"DevicePropertySheets(%p, 0x%lx)\n", pCPSUIInfo,
lparam);
1089 switch ( pCPSUIInfo->
Reason )
1093 FIXME(
"DevPS : PROPSHEETUI_REASON_INIT\n");
1113 FIXME(
"DevPS : PROPSHEETUI_REASON_INIT Fail\n");
1120 FIXME(
"DevPS : PROPSHEETUI_REASON_GET_INFO_HEADER\n");
1137 FIXME(
"DevPS : PROPSHEETUI_REASON_DESTROY\n");
1143 FIXME(
"DevPS : PROPSHEETUI_REASON_SET_RESULT\n");
1160 FIXME(
"CallCommonPropertySheetUI(%p, %p, 0x%lx, %p)\n",
hWnd, pfnPropSheetUI,
lparam, pResult);
1183 FIXME(
"DocumentPropertiesW(%p, %p, %S, %p, %p, %lu)\n",
hWnd, hPrinter, pDeviceName, pDevModeOutput, pDevModeInput, fMode);
1187 hUseHandle = hPrinter;
1191 ERR(
"No handle, and no usable printer name passed in\n");
1198 pDevModeInput =
NULL;
1199 fMode &= ~DM_IN_BUFFER;
1206 docprophdr.
cbOut = 0;
1208 if ( pDevModeOutput )
1212 docprophdr.
fMode = 0;
1213 FIXME(
"DPW : Call DocumentPropertySheets with pDevModeOutput %p\n",pDevModeOutput);
1217 docprophdr.
pdmIn = pDevModeInput;
1218 docprophdr.
pdmOut = pDevModeOutput;
1219 docprophdr.
fMode = fMode;
1230 FIXME(
"CallCommonPropertySheetUI return error\n");
1235 FIXME(
"CallCommonPropertySheetUI returned\n");
1239 FIXME(
"DPW : CallDocumentPropertySheets\n");
1245 if ( pDevModeOutput )
1249 ERR(
"DPW : Improper pDevModeOutput size.\n");
1255 ERR(
"No pDevModeOutput\n");
1259 if (hUseHandle && !hPrinter)
1274 FIXME(
"PrinterProperties(%p, %p)\n",
hWnd, hPrinter);
1287 ERR(
"Failed to allocate PRINTER_INFO_2W of %u bytes\n", needed);
1302 devprophdr.
Flags &= ~DPS_NOPERMISSION;
1311 FIXME(
"PrinterProperties fail ICPSUI\n");
1325 TRACE(
"EndDocPrinter(%p)\n", hPrinter);
1344 ERR(
"_RpcScheduleJob failed with exception code %lu!\n", dwErrorCode);
1361 ERR(
"_RpcEndDocPrinter failed with exception code %lu!\n", dwErrorCode);
1380 TRACE(
"EndPagePrinter(%p)\n", hPrinter);
1404 ERR(
"_RpcEndPagePrinter failed with exception code %lu!\n", dwErrorCode);
1443 TRACE(
"EnumPrintersA(%lu, %s, %lu, %p, %lu, %p, %p)\n",
Flags,
Name,
Level, pPrinterEnum, cbBuf,
pcbNeeded, pcReturned);
1449 ERR(
"Invalid Level!\n");
1462 ERR(
"HeapAlloc failed!\n");
1491 for (
i = 0;
i < *pcReturned;
i++)
1497 if (ppi1w[
i].pDescription)
1503 if (!pszDescription)
1506 ERR(
"HeapAlloc failed!\n");
1525 ERR(
"HeapAlloc failed!\n");
1535 if (ppi1w[
i].pComment)
1544 ERR(
"HeapAlloc failed!\n");
1559 if (ppi2w[
i].pServerName)
1568 ERR(
"HeapAlloc failed!\n");
1578 if (ppi2w[
i].pPrinterName)
1584 if (!pszPrinterName)
1587 ERR(
"HeapAlloc failed!\n");
1597 if (ppi2w[
i].pShareName)
1606 ERR(
"HeapAlloc failed!\n");
1616 if (ppi2w[
i].pPortName)
1625 ERR(
"HeapAlloc failed!\n");
1635 if (ppi2w[
i].pDriverName)
1644 ERR(
"HeapAlloc failed!\n");
1654 if (ppi2w[
i].pComment)
1663 ERR(
"HeapAlloc failed!\n");
1673 if (ppi2w[
i].pLocation)
1682 ERR(
"HeapAlloc failed!\n");
1693 if (ppi2w[
i].pSepFile)
1702 ERR(
"HeapAlloc failed!\n");
1712 if (ppi2w[
i].pPrintProcessor)
1718 if (!pszPrintProcessor)
1721 ERR(
"HeapAlloc failed!\n");
1732 if (ppi2w[
i].pDatatype)
1741 ERR(
"HeapAlloc failed!\n");
1751 if (ppi2w[
i].pParameters)
1760 ERR(
"HeapAlloc failed!\n");
1769 if ( ppi2w[
i].pDevMode )
1778 if (ppi4w[
i].pPrinterName)
1784 if (!pszPrinterName)
1787 ERR(
"HeapAlloc failed!\n");
1797 if (ppi4w[
i].pServerName)
1806 ERR(
"HeapAlloc failed!\n");
1820 if (ppi5w[
i].pPrinterName)
1826 if (!pszPrinterName)
1829 ERR(
"HeapAlloc failed!\n");
1839 if (ppi5w[
i].pPortName)
1848 ERR(
"HeapAlloc failed!\n");
1880 TRACE(
"EnumPrintersW(%lu, %S, %lu, %p, %lu, %p, %p)\n",
Flags,
Name,
Level, pPrinterEnum, cbBuf,
pcbNeeded, pcReturned);
1889 if (cbBuf && pPrinterEnum)
1900 ERR(
"_RpcEnumPrinters failed with exception code %lu!\n", dwErrorCode);
1919 TRACE(
"FlushPrinter(%p, %p, %lu, %p, %lu)\n", hPrinter, pBuf, cbBuf, pcWritten, cSleep);
1930 TRACE(
"GetDefaultPrinterA(%p, %p)\n", pszBuffer, pcchBuffer);
1940 if (pszBuffer && *pcchBuffer)
1946 ERR(
"HeapAlloc failed!\n");
1974 DWORD cchInputBuffer;
1980 TRACE(
"GetDefaultPrinterW(%p, %p)\n", pszBuffer, pcchBuffer);
1989 cchInputBuffer = *pcchBuffer;
1995 ERR(
"RegOpenKeyExW failed with status %lu!\n", dwErrorCode);
2003 ERR(
"RegQueryValueExW failed with status %lu!\n", dwErrorCode);
2012 ERR(
"HeapAlloc failed!\n");
2020 ERR(
"RegQueryValueExW failed with status %lu!\n", dwErrorCode);
2026 pwszComma =
wcschr(pwszDevice,
L',');
2029 ERR(
"Found no or invalid default printer: %S!\n", pwszDevice);
2035 *pcchBuffer = pwszComma - pwszDevice + 1;
2038 if ( !pszBuffer || cchInputBuffer < *pcchBuffer)
2079 TRACE(
"GetPrinterA(%p, %lu, %p, %lu, %p)\n", hPrinter,
Level, pPrinter, cbBuf,
pcbNeeded);
2082 if (Level < 1 || Level > 9)
2085 ERR(
"Invalid Level!\n");
2101 PSTR pszDescription;
2107 if (!pszDescription)
2110 ERR(
"HeapAlloc failed!\n");
2131 ERR(
"HeapAlloc failed!\n");
2152 ERR(
"HeapAlloc failed!\n");
2177 ERR(
"HeapAlloc failed!\n");
2189 PSTR pszPrinterName;
2195 if (!pszPrinterName)
2198 ERR(
"HeapAlloc failed!\n");
2219 ERR(
"HeapAlloc failed!\n");
2240 ERR(
"HeapAlloc failed!\n");
2261 ERR(
"HeapAlloc failed!\n");
2282 ERR(
"HeapAlloc failed!\n");
2303 ERR(
"HeapAlloc failed!\n");
2324 ERR(
"HeapAlloc failed!\n");
2336 PSTR pszPrintProcessor;
2342 if (!pszPrintProcessor)
2345 ERR(
"HeapAlloc failed!\n");
2366 ERR(
"HeapAlloc failed!\n");
2387 ERR(
"HeapAlloc failed!\n");
2407 PSTR pszPrinterName;
2413 if (!pszPrinterName)
2416 ERR(
"HeapAlloc failed!\n");
2437 ERR(
"HeapAlloc failed!\n");
2453 PSTR pszPrinterName;
2459 if (!pszPrinterName)
2462 ERR(
"HeapAlloc failed!\n");
2483 ERR(
"HeapAlloc failed!\n");
2499 PSTR pszaObjectGUID;
2505 if (!pszaObjectGUID)
2508 ERR(
"HeapAlloc failed!\n");
2538 TRACE(
"GetPrinterW(%p, %lu, %p, %lu, %p)\n", hPrinter,
Level, pPrinter, cbBuf,
pcbNeeded);
2554 if (cbBuf && pPrinter)
2565 ERR(
"_RpcGetPrinter failed with exception code %lu!\n", dwErrorCode);
2589 TRACE(
"OpenPrinterA(%s, %p, %p)\n", pPrinterName, phPrinter, pDefault);
2597 if (!pwszPrinterName)
2600 ERR(
"HeapAlloc failed!\n");
2620 ERR(
"HeapAlloc failed!\n");
2631 bReturnValue =
OpenPrinterW(pwszPrinterName, phPrinter, &wDefault);
2646 if (pwszPrinterName)
2649 return bReturnValue;
2662 TRACE(
"OpenPrinterW(%S, %p, %p)\n", pPrinterName, phPrinter, pDefault);
2683 dwErrorCode =
_RpcOpenPrinter(pPrinterName, &hPrinter, pDatatype, &DevModeContainer, AccessRequired);
2688 ERR(
"_RpcOpenPrinter failed with exception code %lu!\n", dwErrorCode);
2699 ERR(
"HeapAlloc failed!\n");
2709 *phPrinter = (
HANDLE)pHandle;
2737 VOID *pvProfileData,
2738 ULONG *pcbProfileData,
2739 FLONG *pflProfileData )
2745 FIXME(
"QueryColorProfile(%p, %p, %l, %p, %p, %p)\n", hPrinter, pdevmode, ulQueryMode, pvProfileData, pcbProfileData, pflProfileData);
2758 ERR(
"QueryColorProfile : Devode Invalid\n");
2771 Ret =
fpQueryColorProfile( hPrinter, pdevmode, ulQueryMode, pvProfileData, pcbProfileData, pflProfileData );
2793#define QSM_DOWNLOADINGFONTS 0x0001
2808#define QSM_XPS_PASS 0x0002
2817 FIXME(
"QuerySpoolMode(%p, %p, %p)\n", hPrinter, downloadFontsFlags,
dwVersion);
2825 ERR(
"Failed to allocate PRINTER_INFO_2W of %u bytes\n", needed);
2834 *downloadFontsFlags = 0;
2862 FIXME(
"QueryRemoteFonts(%p, %p, %lu)\n", hPrinter, pufi, NumberOfUFIs);
2878 if( NumberOfUFIs < cIn )
2898 TRACE(
"ReadPrinter(%p, %p, %lu, %p)\n", hPrinter, pBuf, cbBuf, pNoBytesRead);
2915 ERR(
"_RpcReadPrinter failed with exception code %lu!\n", dwErrorCode);
2932 TRACE(
"ResetPrinterA(%p, %p)\n", hPrinter, pDefault);
2967 TRACE(
"ResetPrinterW(%p, %p)\n", hPrinter, pDefault);
2978 FIXME(
"SeekPrinter(%p, %I64u, %p, %lu, %d)\n", hPrinter, liDistanceToMove.
QuadPart, pliNewPointer, dwMoveMethod, bWrite);
2995 ERR(
"_RpcSeekPrinter failed with exception code %lu!\n", dwErrorCode);
3011 TRACE(
"SetDefaultPrinterA(%s)\n", pszPrinter);
3022 ERR(
"HeapAlloc failed!\n");
3035 return bReturnValue;
3041 const WCHAR wszDevicesKey[] =
L"Software\\Microsoft\\Windows NT\\CurrentVersion\\Devices";
3043 DWORD cbDeviceValueData;
3044 DWORD cbPrinterValueData = 0;
3052 TRACE(
"SetDefaultPrinterW(%S)\n", pszPrinter);
3058 ERR(
"RegOpenKeyExW failed with status %lu!\n", dwErrorCode);
3063 if (pszPrinter && *pszPrinter)
3074 ERR(
"RegQueryValueExW failed with status %lu!\n", dwErrorCode);
3078 cchPrinter =
wcslen(pszPrinter);
3096 pszPrinter = wszPrinter;
3102 cbDeviceValueData = (cchPrinter + 1) *
sizeof(
WCHAR) + cbPrinterValueData;
3104 if (!pwszDeviceValueData)
3107 ERR(
"HeapAlloc failed!\n");
3112 CopyMemory(pwszDeviceValueData, pszPrinter, cchPrinter *
sizeof(
WCHAR));
3113 pwszDeviceValueData[cchPrinter] =
L',';
3124 ERR(
"RegOpenKeyExW failed with status %lu!\n", dwErrorCode);
3132 ERR(
"RegSetValueExW failed with status %lu!\n", dwErrorCode);
3143 if (pwszDeviceValueData)
3341 DevModeContainer.
cbBuf = 0;
3344 SecurityContainer.
cbBuf = 0;
3418 if ( pPrinter ==
NULL )
3475 TRACE(
"DriverUnloadComplete(%S)\n", pDriverFile);
3531 ERR(
"Failed to allocate filename of %u bytes\n", (
len + 1) *
sizeof(
WCHAR));
3587 FIXME(
"StartDocDlgW(%p, %p)\n", hPrinter, doc);
3598 ERR(
"Failed to allocate PRINTER_INFO_5W of %u bytes\n",
len);
3621 if ( retDlg ==
IDOK )
3631 ERR(
"Failed to allocate path name buffer of %u bytes\n",
len *
sizeof(
WCHAR));
3638 else if ( retDlg == 0 )
3656 ERR(
"Failed to allocate path name buffer of %u bytes\n",
len *
sizeof(
WCHAR));
3683 if (!(
docW.lpszDocName = docnameW))
goto failed;
3688 if (!(
docW.lpszOutput = outputW))
goto failed;
3709 ERR(
"Failed to allocate path name buffer of %u bytes\n",
len);
3728 DWORD dwReturnValue = 0;
3731 TRACE(
"StartDocPrinterA(%p, %lu, %p)\n", hPrinter,
Level, pDocInfo);
3743 ERR(
"Level = %d, unsupported!\n",
Level);
3757 ERR(
"HeapAlloc failed!\n");
3773 ERR(
"HeapAlloc failed!\n");
3789 ERR(
"HeapAlloc failed!\n");
3810 return dwReturnValue;
3816 DWORD cbAddJobInfo1;
3819 DWORD dwReturnValue = 0;
3824 TRACE(
"StartDocPrinterW(%p, %lu, %p)\n", hPrinter,
Level, pDocInfo);
3841 ERR(
"Level = %d, unsupported!\n",
Level);
3866 ERR(
"HeapAlloc failed!\n");
3886 ERR(
"AddJobW failed with error %lu!\n", dwErrorCode);
3894 dwReturnValue = pHandle->
dwJobID;
3906 return dwReturnValue;
3915 TRACE(
"StartPagePrinter(%p)\n", hPrinter);
3932 ERR(
"_RpcStartPagePrinter failed with exception code %lu!\n", dwErrorCode);
3947 TRACE(
"WritePrinter(%p, %p, %lu, %p)\n", hPrinter, pBuf, cbBuf, pcWritten);
3968 ERR(
"WriteFile failed with error %lu!\n", dwErrorCode);
3987 ERR(
"_RpcWritePrinter failed with exception code %lu!\n", dwErrorCode);
4000 DWORD dwErrorCode, Bogus = 0;
4003 TRACE(
"XcvDataW(%p, %S, %p, %lu, %p, %lu, %p, %p)\n",
hXcv, pszDataName, pInputData, cbInputData, pOutputData, cbOutputData, pcbOutputNeeded, pdwStatus);
4005 if ( pcbOutputNeeded ==
NULL )
4021 if ( pInputData ==
NULL )
4025 pInputData = (
PBYTE)&Bogus;
4029 if ( pOutputData ==
NULL )
4031 if ( !cbOutputData )
4033 pOutputData = (
PBYTE)&Bogus;
4052 ERR(
"_RpcXcvData failed with exception code %lu!\n", dwErrorCode);
ACPI_SIZE strlen(const char *String)
BOOL WINAPI XcvDataW(HANDLE hXcv, PCWSTR pszDataName, PBYTE pInputData, DWORD cbInputData, PBYTE pOutputData, DWORD cbOutputData, PDWORD pcbOutputNeeded, PDWORD pdwStatus)
DWORD WINAPI PrinterMessageBoxW(HANDLE hPrinter, DWORD Error, HWND hWnd, LPWSTR pText, LPWSTR pCaption, DWORD dwType)
BOOL WINAPI DeletePrinter(HANDLE hPrinter)
DWORD WINAPI StartDocPrinterW(HANDLE hPrinter, DWORD Level, PBYTE pDocInfo)
BOOL WINAPI GetPrinterW(HANDLE hPrinter, DWORD Level, PBYTE pPrinter, DWORD cbBuf, PDWORD pcbNeeded)
BOOL WINAPI SetPrinterW(HANDLE hPrinter, DWORD Level, PBYTE pPrinter, DWORD Command)
BOOL WINAPI EnumPrintersW(DWORD Flags, PWSTR Name, DWORD Level, PBYTE pPrinterEnum, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned)
BOOL WINAPI EndDocPrinter(HANDLE hPrinter)
BOOL WINAPI WritePrinter(HANDLE hPrinter, PVOID pBuf, DWORD cbBuf, PDWORD pcWritten)
BOOL WINAPI ClosePrinter(HANDLE hPrinter)
BOOL WINAPI AbortPrinter(HANDLE hPrinter)
BOOL WINAPI ReadPrinter(HANDLE hPrinter, PVOID pBuf, DWORD cbBuf, PDWORD pNoBytesRead)
BOOL WINAPI OpenPrinterW(PWSTR pPrinterName, PHANDLE phPrinter, PPRINTER_DEFAULTSW pDefault)
HANDLE WINAPI AddPrinterW(PWSTR pName, DWORD Level, PBYTE pPrinter)
BOOL WINAPI EndPagePrinter(HANDLE hPrinter)
BOOL WINAPI SeekPrinter(HANDLE hPrinter, LARGE_INTEGER liDistanceToMove, PLARGE_INTEGER pliNewPointer, DWORD dwMoveMethod, BOOL bWrite)
BOOL WINAPI StartPagePrinter(HANDLE hPrinter)
DWORD _RpcScheduleJob(WINSPOOL_PRINTER_HANDLE hPrinter, DWORD JobId)
DWORD _RpcSetPrinter(WINSPOOL_PRINTER_HANDLE hPrinter, WINSPOOL_PRINTER_CONTAINER *pPrinterContainer, WINSPOOL_DEVMODE_CONTAINER *pDevModeContainer, WINSPOOL_SECURITY_CONTAINER *pSecurityContainer, DWORD Command)
DWORD _RpcReadPrinter(WINSPOOL_PRINTER_HANDLE hPrinter, BYTE *pBuf, DWORD cbBuf, DWORD *pcNoBytesRead)
DWORD _RpcSeekPrinter(WINSPOOL_PRINTER_HANDLE hPrinter, LARGE_INTEGER liDistanceToMove, PLARGE_INTEGER pliNewPointer, DWORD dwMoveMethod, BOOL bWrite)
DWORD _RpcEndDocPrinter(WINSPOOL_PRINTER_HANDLE hPrinter)
DWORD _RpcAbortPrinter(WINSPOOL_PRINTER_HANDLE hPrinter)
DWORD _RpcStartDocPrinter(WINSPOOL_PRINTER_HANDLE hPrinter, WINSPOOL_DOC_INFO_CONTAINER *pDocInfoContainer, DWORD *pJobId)
DWORD _RpcGetPrinter(WINSPOOL_PRINTER_HANDLE hPrinter, DWORD Level, BYTE *pPrinter, DWORD cbBuf, DWORD *pcbNeeded)
DWORD _RpcOpenPrinter(WINSPOOL_HANDLE pPrinterName, WINSPOOL_PRINTER_HANDLE *phPrinter, WCHAR *pDatatype, WINSPOOL_DEVMODE_CONTAINER *pDevModeContainer, DWORD AccessRequired)
DWORD _RpcStartPagePrinter(WINSPOOL_PRINTER_HANDLE hPrinter)
DWORD _RpcAddPrinter(WINSPOOL_HANDLE pName, WINSPOOL_PRINTER_CONTAINER *pPrinterContainer, WINSPOOL_DEVMODE_CONTAINER *pDevModeContainer, WINSPOOL_SECURITY_CONTAINER *pSecurityContainer, WINSPOOL_PRINTER_HANDLE *pHandle)
DWORD _RpcClosePrinter(WINSPOOL_PRINTER_HANDLE *phPrinter)
DWORD _RpcDeletePrinter(WINSPOOL_PRINTER_HANDLE hPrinter)
DWORD _RpcEnumPrinters(DWORD Flags, WINSPOOL_HANDLE Name, DWORD Level, BYTE *pPrinterEnum, DWORD cbBuf, DWORD *pcbNeeded, DWORD *pcReturned)
DWORD _RpcEndPagePrinter(WINSPOOL_PRINTER_HANDLE hPrinter)
DWORD _RpcWritePrinter(WINSPOOL_PRINTER_HANDLE hPrinter, BYTE *pBuf, DWORD cbBuf, DWORD *pcWritten)
DWORD _RpcXcvData(WINSPOOL_PRINTER_HANDLE hXcv, const WCHAR *pszDataName, BYTE *pInputData, DWORD cbInputData, BYTE *pOutputData, DWORD cbOutputData, DWORD *pcbOutputNeeded, DWORD *pdwStatus)
BOOL WINAPI FlushPrinter(HANDLE hPrinter, PVOID pBuf, DWORD cbBuf, PDWORD pcWritten, DWORD cSleep)
BOOL WINAPI SetPrinterA(HANDLE hPrinter, DWORD Level, PBYTE pPrinter, DWORD Command)
#define QSM_DOWNLOADINGFONTS
BOOL FASTCALL IntFixUpDevModeNames(PDOCUMENTPROPERTYHEADER pdphdr)
LONG WINAPI DevicePropertySheets(PPROPSHEETUI_INFO pCPSUIInfo, LPARAM lparam)
INT_PTR CALLBACK file_dlg_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
static DEVICEPROPERTYSHEETS fpDevicePropertySheets
BOOL WINAPI QueryColorProfile(HANDLE hPrinter, PDEVMODEW pdevmode, ULONG ulQueryMode, VOID *pvProfileData, ULONG *pcbProfileData, FLONG *pflProfileData)
struct _COMPUI_USERDATA COMPUI_USERDATA
LONG WINAPI ConstructPrinterFriendlyName(PWSTR, PVOID, LPDWORD Size)
DWORD WINAPI PrinterMessageBoxA(HANDLE hPrinter, DWORD Error, HWND hWnd, LPSTR pText, LPSTR pCaption, DWORD dwType)
DWORD(WINAPI * DEVICECAPABILITIES)(HANDLE, PWSTR, WORD, PVOID, PDEVMODEW)
LONG WINAPI DocumentPropertySheets(PPROPSHEETUI_INFO pCPSUIInfo, LPARAM lparam)
LONG WINAPI CreatePrinterFriendlyName(PCOMPUI_USERDATA pcui_ud, LPWSTR pszPrinterName)
static DWORD _StartDocPrinterSpooled(PSPOOLER_HANDLE pHandle, PDOC_INFO_1W pDocInfo1, PADDJOB_INFO_1W pAddJobInfo1)
LONG(WINAPI * CONSTRUCTPRINTERFRIENDLYNAME)(PWSTR, PVOID, LPDWORD)
DWORD WINAPI DeviceCapabilitiesA(LPCSTR pDevice, LPCSTR pPort, WORD fwCapability, LPSTR pOutput, const DEVMODEA *pDevMode)
LONG(WINAPI * DOCUMENTPROPERTYSHEETS)(PPROPSHEETUI_INFO, LPARAM)
BOOL(WINAPI * SPOOLERPRINTEREVENT)(LPWSTR, int, DWORD, LPARAM)
BOOL WINAPI OpenPrinterA(LPSTR pPrinterName, LPHANDLE phPrinter, LPPRINTER_DEFAULTSA pDefault)
struct _COMPUI_USERDATA * PCOMPUI_USERDATA
LONG WINAPI DocumentPropertiesW(HWND hWnd, HANDLE hPrinter, LPWSTR pDeviceName, PDEVMODEW pDevModeOutput, PDEVMODEW pDevModeInput, DWORD fMode)
HANDLE WINAPI AddPrinterA(PSTR pName, DWORD Level, PBYTE pPrinter)
LONG(WINAPI * QUERYCOLORPROFILE)(HANDLE, PDEVMODEW, ULONG, PVOID, ULONG *, FLONG *)
LONG(WINAPI * DEVICEPROPERTYSHEETS)(PPROPSHEETUI_INFO, LPARAM)
BOOL(WINAPI * DEVQUERYPRINTEX)(PDEVQUERYPRINT_INFO)
BOOL WINAPI QuerySpoolMode(HANDLE hPrinter, PDWORD downloadFontsFlags, PDWORD dwVersion)
LONG WINAPI DocumentPropertiesA(HWND hWnd, HANDLE hPrinter, LPSTR pDeviceName, PDEVMODEA pDevModeOutput, PDEVMODEA pDevModeInput, DWORD fMode)
HANDLE WINAPI CreatePrinterIC(_In_ HANDLE hPrinter, _In_opt_ LPDEVMODEW pDevMode)
static QUERYCOLORPROFILE fpQueryColorProfile
BOOL WINAPI GetDefaultPrinterW(LPWSTR pszBuffer, LPDWORD pcchBuffer)
HMODULE WINAPI LoadPrinterDriver(HANDLE hspool)
static DOCUMENTPROPERTYSHEETS fpDocumentPropertySheets
static DWORD _StartDocPrinterWithRPC(PSPOOLER_HANDLE pHandle, PDOC_INFO_1W pDocInfo1)
BOOL WINAPI PlayGdiScriptOnPrinterIC(_In_ HANDLE hPrinterIC, _In_reads_bytes_(cIn) LPBYTE pIn, _In_ DWORD cIn, _Out_writes_bytes_(cOut) LPBYTE pOut, _In_ DWORD cOut, _In_ DWORD ul)
LPSTR WINAPI StartDocDlgA(HANDLE hPrinter, DOCINFOA *doc)
BOOL WINAPI SplDriverUnloadComplete(LPWSTR pDriverFile)
static const WCHAR wszWindowsKey[]
DWORD WINAPI StartDocPrinterA(HANDLE hPrinter, DWORD Level, PBYTE pDocInfo)
LPWSTR WINAPI StartDocDlgW(HANDLE hPrinter, DOCINFOW *doc)
static DEVICECAPABILITIES fpDeviceCapabilities
static DEVQUERYPRINTEX fpDevQueryPrintEx
static const WCHAR wszDeviceValue[]
BOOL WINAPI DevQueryPrint(HANDLE hPrinter, LPDEVMODEW pDevMode, DWORD *pResID)
BOOL WINAPI SpoolerPrinterEvent(LPWSTR pPrinterName, INT DriverEvent, DWORD Flags, LPARAM lParam)
static const WCHAR FILE_Port[]
BOOL WINAPI PrinterProperties(HWND hWnd, HANDLE hPrinter)
BOOL WINAPI GetPrinterA(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter, DWORD cbBuf, LPDWORD pcbNeeded)
BOOL WINAPI GetDefaultPrinterA(LPSTR pszBuffer, LPDWORD pcchBuffer)
INT WINAPI DocumentEvent(HANDLE hPrinter, HDC hdc, int iEsc, ULONG cbIn, PVOID pvIn, ULONG cbOut, PVOID pvOut)
DWORD WINAPI DeviceCapabilitiesW(LPCWSTR pDevice, LPCWSTR pPort, WORD fwCapability, LPWSTR pOutput, const DEVMODEW *pDevMode)
BOOL WINAPI SetDefaultPrinterW(LPCWSTR pszPrinter)
BOOL WINAPI EnumPrintersA(DWORD Flags, PSTR Name, DWORD Level, PBYTE pPrinterEnum, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned)
DWORD WINAPI QueryRemoteFonts(HANDLE hPrinter, PUNIVERSAL_FONT_ID pufi, ULONG NumberOfUFIs)
LONG WINAPI CallCommonPropertySheetUI(HWND hWnd, PFNPROPSHEETUI pfnPropSheetUI, LPARAM lparam, LPDWORD pResult)
BOOL WINAPI SetDefaultPrinterA(LPCSTR pszPrinter)
static SPOOLERPRINTEREVENT fpPrinterEvent
static CONSTRUCTPRINTERFRIENDLYNAME fpConstructPrinterFriendlyName
BOOL(WINAPI * DEVQUERYPRINT)(HANDLE, LPDEVMODEW, DWORD *)
BOOL WINAPI ResetPrinterA(HANDLE hPrinter, PPRINTER_DEFAULTSA pDefault)
static COMMONPROPERTYSHEETUIW fpCommonPropertySheetUIW
BOOL FASTCALL CreateUIUserData(ULONG_PTR *puserdata, HANDLE hPrinter)
LONG(WINAPI * COMMONPROPERTYSHEETUIW)(HWND, PFNPROPSHEETUI, LPARAM, LPDWORD)
PRINTER_INFO_9W * get_devmodeW(HANDLE hprn)
BOOL WINAPI DevQueryPrintEx(PDEVQUERYPRINT_INFO pDQPInfo)
VOID FASTCALL DestroyUIUserData(ULONG_PTR *puserdata)
BOOL WINAPI DeletePrinterIC(_In_ HANDLE hPrinterIC)
static DEVQUERYPRINT fpDevQueryPrint
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
#define RegCloseKey(hKey)
#define ERROR_NOT_ENOUGH_MEMORY
#define ERROR_INSUFFICIENT_BUFFER
void RosConvertUnicodeDevModeToAnsiDevmode(PDEVMODEW pDevModeInput, PDEVMODEA pDevModeOutput)
BOOL WINAPI IsValidDevmodeNoSizeW(PDEVMODEW pDevmode)
void RosConvertAnsiDevModeToUnicodeDevmode(PDEVMODEA pDevModeInput, PDEVMODEW *pDevModeOutput)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
LONG WINAPI RegEnumValueW(_In_ HKEY hKey, _In_ DWORD index, _Out_ LPWSTR value, _Inout_ PDWORD val_count, _Reserved_ PDWORD reserved, _Out_opt_ PDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ PDWORD count)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
#define ERROR_INVALID_PARAMETER
#define GetProcAddress(x, y)
#define INVALID_HANDLE_VALUE
#define HeapFree(x, y, z)
#define ERROR_INVALID_HANDLE
#define FILE_ATTRIBUTE_NORMAL
#define WideCharToMultiByte
#define MultiByteToWideChar
#define ERROR_INVALID_NAME
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
DWORD WINAPI GetFullPathNameW(IN LPCWSTR lpFileName, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart)
static HRESULT get_sd(SECURITY_DESCRIPTOR **sd, DWORD *size)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
static const WCHAR Cleanup[]
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
#define EXCEPTION_EXECUTE_HANDLER
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
static VOID UpdateTrayIcon(HWND hwnd, LPTSTR szKLID, LPTSTR szName)
BOOL WINAPI MarshallUpStructuresArray(DWORD cbSize, PVOID pStructuresArray, DWORD cElements, const MARSHALLING_INFO *pInfo, DWORD cbStructureSize, BOOL bSomeBoolean)
BOOL WINAPI MarshallUpStructure(DWORD cbSize, PVOID pStructure, const MARSHALLING_INFO *pInfo, DWORD cbStructureSize, BOOL bSomeBoolean)
#define memcpy(s1, s2, n)
#define ERROR_FILE_NOT_FOUND
wstring AsciiToUnicode(const char *AsciiString)
static DWORD DWORD void LPSTR DWORD cch
static const WCHAR docW[]
#define _In_reads_bytes_(size)
#define _Out_writes_bytes_(size)
#define FILE_ATTRIBUTE_DIRECTORY
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
struct _UNIVERSAL_FONT_ID UNIVERSAL_FONT_ID
static const MARSHALLING * pPrinterInfoMarshalling[]
static const WCHAR datatypeW[]
struct _SETRESULT_INFO * PSETRESULT_INFO
#define PROPSHEETUI_REASON_INIT
#define PSUIHDRF_PROPTITLE
struct _PROPSHEETUI_INFO_HEADER * PPROPSHEETUI_INFO_HEADER
#define CPSFUNC_SET_FUSION_CONTEXT
#define IDI_CPSUI_DOCUMENT
#define PROPSHEETUI_REASON_DESTROY
#define CPSFUNC_ADD_PFNPROPSHEETUIW
#define PROPSHEETUI_REASON_SET_RESULT
#define PSUIHDRF_NOAPPLYNOW
#define ERR_CPSUI_GETLASTERROR
#define ERR_CPSUI_ALLOCMEM_FAILED
LONG(FAR * PFNPROPSHEETUI)(PPROPSHEETUI_INFO pPSUIInfo, LPARAM lParam)
struct _PROPSHEETUI_INFO * PPROPSHEETUI_INFO
#define PROPSHEETUI_REASON_GET_INFO_HEADER
struct _DEVICEPROPERTYHEADER * PDEVICEPROPERTYHEADER
#define DOCUMENTEVENT_UNSUPPORTED
struct _DOCUMENTPROPERTYHEADER DOCUMENTPROPERTYHEADER
struct _DEVICEPROPERTYHEADER DEVICEPROPERTYHEADER
struct _DOCUMENTPROPERTYHEADER * PDOCUMENTPROPERTYHEADER
struct _DEVQUERYPRINT_INFO * PDEVQUERYPRINT_INFO
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
#define RpcExceptionCode()
struct _PRINTER_INFO_STRESS * PPRINTER_INFO_STRESS
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
STRSAFEAPI StringCchCopyA(STRSAFE_LPSTR pszDest, size_t cchDest, STRSAFE_LPCSTR pszSrc)
ACCESS_MASK DesiredAccess
ACCESS_MASK DesiredAccess
PSECURITY_DESCRIPTOR pSecurityDescriptor
PSECURITY_DESCRIPTOR pSecurityDescriptor
PFNCOMPROPSHEET pfnComPropSheet
WINSPOOL_DOC_INFO_1 * pDocInfo1
union _WINSPOOL_DOC_INFO_CONTAINER::@3434 DocInfo
union _WINSPOOL_PRINTER_CONTAINER::@3440 PrinterInfo
WINSPOOL_PRINTER_INFO_1 * pPrinterInfo1
BYTE dmDeviceName[CCHDEVICENAME]
#define RtlCopyMemory(Destination, Source, Length)
#define INVALID_FILE_ATTRIBUTES
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
BOOL WINAPI DllFreeSplMem(PVOID pMem)
PVOID WINAPI DllAllocSplMem(DWORD dwBytes)
PWSTR WINAPI AllocSplStr(PCWSTR pwszInput)
struct _SPOOLER_HANDLE * PSPOOLER_HANDLE
#define SPOOLER_HANDLE_SIG
LONG WINAPI IntProtectHandle(HANDLE, BOOL)
UINT WINAPI GetDlgItemTextW(HWND hDlg, int nIDDlgItem, LPWSTR lpString, int nMaxCount)
DWORD WINAPI GetLastError(void)
_In_ LPWSTR _In_ ULONG _In_ ULONG _In_ ULONG _Out_ DEVINFO * pdi
_In_ LPWSTR _In_ ULONG _In_ ULONG _In_ ULONG _Out_ DEVINFO _In_ HDEV _In_ LPWSTR pwszDeviceName
_In_ DWORD _Out_ PDWORD pcbNeeded
#define ERROR_INVALID_LEVEL
#define ERROR_INVALID_PRINTER_STATE
#define ERROR_INVALID_PRINTER_NAME
#define ERROR_INVALID_ACCESS
#define ERROR_SPL_NO_STARTDOC
DEVMODEW *WINAPI GdiConvertToDevmodeW(const DEVMODEA *)
struct _devicemodeW * LPDEVMODEW
struct _devicemodeW * PDEVMODEW
struct _devicemodeW DEVMODEW
#define HKEY_CURRENT_USER
struct _PRINTER_INFO_2W * PPRINTER_INFO_2W
#define PRINTER_CONTROL_SET_STATUS
struct _PRINTER_INFO_2A * PPRINTER_INFO_2A
DWORD WINAPI SetPrinterDataW(HANDLE hPrinter, LPWSTR pValueName, DWORD Type, LPBYTE pData, DWORD cbData)
#define JOB_CONTROL_DELETE
struct _PRINTER_INFO_1A * PPRINTER_INFO_1A
WINBOOL WINAPI GetPrinterDriverW(HANDLE hPrinter, LPWSTR pEnvironment, DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf, LPDWORD pcbNeeded)
struct _PRINTER_INFO_4W * PPRINTER_INFO_4W
struct _PRINTER_INFO_1W * PPRINTER_INFO_1W
struct _PRINTER_INFO_9A * PPRINTER_INFO_9A
WINBOOL WINAPI SetJobW(HANDLE hPrinter, DWORD JobId, DWORD Level, LPBYTE pJob, DWORD Command)
WINBOOL WINAPI ResetPrinterW(HANDLE hPrinter, LPPRINTER_DEFAULTSW pDefault)
struct _PRINTER_INFO_4A * PPRINTER_INFO_4A
struct _PRINTER_INFO_5A * PPRINTER_INFO_5A
WINBOOL WINAPI AddJobW(HANDLE hPrinter, DWORD Level, LPBYTE pData, DWORD cbBuf, LPDWORD pcbNeeded)
struct _ADDJOB_INFO_1W ADDJOB_INFO_1W
struct _PRINTER_INFO_7W * PPRINTER_INFO_7W
struct _PRINTER_INFO_3 * PPRINTER_INFO_3
WINBOOL WINAPI GetJobW(HANDLE hPrinter, DWORD JobId, DWORD Level, LPBYTE pJob, DWORD cbBuf, LPDWORD pcbNeeded)
struct _PRINTER_INFO_5W * PPRINTER_INFO_5W
WINBOOL WINAPI ScheduleJob(HANDLE hPrinter, DWORD JobId)
struct _PRINTER_DEFAULTSW * PPRINTER_DEFAULTSW
struct _PRINTER_INFO_7A * PPRINTER_INFO_7A
struct _PRINTER_INFO_9W * PPRINTER_INFO_9W
struct _DOC_INFO_1W * PDOC_INFO_1W
struct _DOC_INFO_1A * PDOC_INFO_1A
#define GetWindowLongPtrW
HWND WINAPI GetForegroundWindow(void)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
LRESULT WINAPI SendDlgItemMessageW(_In_ HWND, _In_ int, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define MB_ICONEXCLAMATION
#define MAKEINTRESOURCEW(i)
#define SetWindowLongPtrW
INT_PTR WINAPI DialogBoxParamW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
_IRQL_requires_same_ typedef _In_ ULONG _In_ UCHAR Level
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
_Must_inspect_result_ _In_ ULONG Flags