/*++ Copyright (c) 1996 Microsoft Corporation Module Name: oemui.h Abstract: Header file to support OEM plugin UI Environment: Windows NT printer drivers Revision History: 02/13/97 -davidx- Created it. --*/ #ifndef _OEMUI_H_ #define _OEMUI_H_ #ifdef __cplusplus extern "C" { #endif // // Macros used to loop through each OEM plugin // #define FOREACH_OEMPLUGIN_LOOP(pci) \ { \ DWORD _oemCount = (pci)->pOemPlugins->dwCount; \ POEM_PLUGIN_ENTRY pOemEntry = (pci)->pOemPlugins->aPlugins; \ for ( ; _oemCount--; pOemEntry++) \ { \ if (pOemEntry->hInstance == NULL) continue; #define END_OEMPLUGIN_LOOP \ } \ } // // Call OEM plugin UI modules to let them add their OPTITEMs // BOOL BPackOemPluginItems( PUIDATA pUiData ); // // Call OEM plugin module's callback function // LONG LInvokeOemPluginCallbacks( PUIDATA pUiData, PCPSUICBPARAM pCallbackParam, LONG lRet ); // // Call OEM plugin UI modules to let them add their own property sheet pages // BOOL BAddOemPluginPages( PUIDATA pUiData, DWORD dwFlags ); // // Figure whether a particular item is belongs to the driver // (instead of to one of the OEM plugin UI modules) // #define IS_DRIVER_OPTITEM(pUiData, pOptItem) \ ((DWORD) ((pOptItem) - (pUiData)->pDrvOptItem) < (pUiData)->dwDrvOptItem) // // Provide OEM plugins access to driver private settings // BOOL APIENTRY BGetDriverSettingForOEM( PCOMMONINFO pci, PCSTR pFeatureKeyword, PVOID pOutput, DWORD cbSize, PDWORD pcbNeeded, PDWORD pdwOptionsReturned ); BOOL BUpdateUISettingForOEM( PCOMMONINFO pci, PVOID pOptItem, DWORD dwPreviousSelection, DWORD dwMode ); BOOL BUpgradeRegistrySettingForOEM( HANDLE hPrinter, PCSTR pFeatureKeyword, PCSTR pOptionKeyword ); extern const OEMUIPROCS OemUIHelperFuncs; HRESULT HDriver_CoCreateInstance( IN REFCLSID rclsid, IN LPUNKNOWN pUnknownOuter, IN DWORD dwClsContext, IN REFIID riid, IN LPVOID *ppv, IN HANDLE hInstance ); // // The following helper functions are only available to UI plugins // #ifdef PSCRIPT #ifndef WINNT_40 HRESULT HQuerySimulationSupport( IN HANDLE hPrinter, IN DWORD dwLevel, OUT PBYTE pCaps, IN DWORD cbSize, OUT PDWORD pcbNeeded ); #endif // !WINNT_40 HRESULT HEnumConstrainedOptions( IN POEMUIOBJ poemuiobj, IN DWORD dwFlags, IN PCSTR pszFeatureKeyword, OUT PSTR pmszConstrainedOptionList, IN DWORD cbSize, OUT PDWORD pcbNeeded ); HRESULT HWhyConstrained( IN POEMUIOBJ poemuiobj, IN DWORD dwFlags, IN PCSTR pszFeatureKeyword, IN PCSTR pszOptionKeyword, OUT PSTR pmszReasonList, IN DWORD cbSize, OUT PDWORD pcbNeeded ); HRESULT HSetOptions( IN POEMUIOBJ poemuiobj, IN DWORD dwFlags, IN PCSTR pmszFeatureOptionBuf, IN DWORD cbIn, OUT PDWORD pdwResult ); #endif // PSCRIPT #ifdef __cplusplus } #endif #endif // !_OEMUI_H_