/*++ Copyright (c) Microsoft Corporation. All Rights Reserved. Module Name: msoobci.h Abstract: Exception Pack installer helper DLL Public API header Author: Jamie Hunter (jamiehun) 2001-11-27 Revision History: Jamie Hunter (jamiehun) 2001-11-27 Initial Version --*/ #ifndef __MSOOBCI_H__ #define __MSOOBCI_H__ // // DriverInstallComponents is a standard co-installer entrypoint // return status is WinError form, as expected by SetupAPI // DWORD CALLBACK DriverInstallComponents ( IN DI_FUNCTION InstallFunction, IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData, IN OUT PCOINSTALLER_CONTEXT_DATA Context ); // // InstallComponent is a generic entry point // return status is HRESULT form, providing success codes // // CompGuid - if NULL, use GUID specified in INF (ComponentId) // else verify against GUID specified in INF // VerMajor/VerMinor/VerBuild/VerQFE // - if -1, use version specified in INF (ComponentVersion) // else use this version and verify against version if specified in INF // Name // - if NULL, use name specified in INF (ComponentName) // else use this component name. // #define INST_S_REBOOT ((HRESULT)(0x20000100)) // 'success' code that indicates reboot required #define INST_S_REBOOTING ((HRESULT)(0x20000101)) // indicates reboot in progress #define COMP_FLAGS_NOINSTALL 0x00000001 // place in store, don't install #define COMP_FLAGS_NOUI 0x00000002 // don't show any UI #define COMP_FLAGS_NOPROMPTREBOOT 0x00000004 // reboot if needed (no prompt) #define COMP_FLAGS_PROMPTREBOOT 0x00000008 // prompt for reboot if needed #define COMP_FLAGS_NEEDSREBOOT 0x00000010 // assume reboot needed #define COMP_FLAGS_FORCE 0x00000020 // don't do version check HRESULT WINAPI InstallComponentA( IN LPCSTR InfPath, IN DWORD Flags, IN const GUID * CompGuid, OPTIONAL IN INT VerMajor, OPTIONAL IN INT VerMinor, OPTIONAL IN INT VerBuild, OPTIONAL IN INT VerQFE, OPTIONAL IN LPCSTR Name OPTIONAL ); HRESULT WINAPI InstallComponentW( IN LPCWSTR InfPath, IN DWORD Flags, IN const GUID * CompGuid, OPTIONAL IN INT VerMajor, OPTIONAL IN INT VerMinor, OPTIONAL IN INT VerBuild, OPTIONAL IN INT VerQFE, OPTIONAL IN LPCWSTR Name OPTIONAL ); #ifdef UNICODE #define InstallComponent InstallComponentW #else #define InstallComponent InstallComponentA #endif // // DoInstall is a RunDll32 entrypoint. // CommandLine = "InfPath;Flags;GUID;Version;Name" // where version has format High.Low.Build.QFE // // calls InstallComponent, but drops return status // VOID WINAPI DoInstallA( IN HWND Window, IN HINSTANCE ModuleHandle, IN PCSTR CommandLine, IN INT ShowCommand ); VOID WINAPI DoInstallW( IN HWND Window, IN HINSTANCE ModuleHandle, IN PCWSTR CommandLine, IN INT ShowCommand ); #ifdef UNICODE #define DoInstall DoInstallW #else #define DoInstall DoInstallA #endif // // lower-level install API's // install from specified section of specified INF // if SectionName not specified, install from (potentially decorated) // "DefaultInstall" // HRESULT WINAPI InstallInfSectionA( IN LPCSTR InfPath, IN LPCSTR SectionName, OPTIONAL IN DWORD Flags ); HRESULT WINAPI InstallInfSectionW( IN LPCWSTR InfPath, IN LPCWSTR SectionName, OPTIONAL IN DWORD Flags ); #ifdef UNICODE #define InstallInfSection InstallInfSectionW #else #define InstallInfSection InstallInfSectionA #endif // // check to see if current user has admin rights // Caller is NOT expected to be impersonating anyone and IS // expected to be able to open their own process and process // token. // BOOL WINAPI IsUserAdmin( VOID ); // // see if process is running in an interactive window station // (ie, can show dialogs and get input off user) // BOOL WINAPI IsInteractiveWindowStation( VOID ); #endif // __MSOOBCI_H__