From 461904cb6ebc4515141bc846fbed0df7bcab8079 Mon Sep 17 00:00:00 2001 From: James Hawkins Date: Sat, 14 Jan 2006 17:10:16 +0100 Subject: [PATCH] advpack: Add stubs for CloseINFEngine, OpenINFEngine, and TranslateInfStringEx. --- dlls/advpack/advpack.c | 94 +++++++++++++++++++++++++++++++++++++++ dlls/advpack/advpack.spec | 6 +-- include/advpub.h | 10 +++++ 3 files changed, 107 insertions(+), 3 deletions(-) diff --git a/dlls/advpack/advpack.c b/dlls/advpack/advpack.c index 9c6ac1add1b..4fcae962fe1 100644 --- a/dlls/advpack/advpack.c +++ b/dlls/advpack/advpack.c @@ -36,6 +36,27 @@ WINE_DEFAULT_DEBUG_CHANNEL(advpack); typedef HRESULT (WINAPI *DLLREGISTER) (void); +/*********************************************************************** + * CloseINFEngine (ADVPACK.@) + * + * + * PARAMS + * hInf [I] + * + * RETURNS + * Success: S_OK. + * Failure: E_FAIL. + * + * BUGS + * Unimplemented. + */ +HRESULT WINAPI CloseINFEngine(HINF hInf) +{ + FIXME("(%p) stub\n", hInf); + + return E_FAIL; +} + /*********************************************************************** * DllMain (ADVPACK.@) */ @@ -244,6 +265,35 @@ BOOL WINAPI NeedReboot(DWORD dwRebootCheck) return FALSE; } +/*********************************************************************** + * OpenINFEngine (ADVPACK.@) + * + * Opens and returns a handle to an INF file to be used by + * TranslateInfStringEx to continuously translate the INF file. + * + * PARAMS + * pszInfFilename [I] Filename of the INF to open. + * pszInstallSection [I] Name of the Install section in the INF. + * dwFlags [I] See advpub.h. + * phInf [O] Handle to the loaded INF file. + * pvReserved [I] Reserved. Must be NULL. + * + * RETURNS + * Success: S_OK. + * Failure: E_FAIL. + * + * BUGS + * Unimplemented. + */ +HRESULT WINAPI OpenINFEngine(PCSTR pszInfFilename, PCSTR pszInstallSection, + DWORD dwFlags, HINF *phInf, PVOID pvReserved) +{ + FIXME("(%p, %p, %ld, %p, %p) stub\n", pszInfFilename, pszInstallSection, + dwFlags, phInf, pvReserved); + + return E_FAIL; +} + /*********************************************************************** * RegisterOCX (ADVPACK.@) */ @@ -361,3 +411,47 @@ HRESULT WINAPI TranslateInfString(PCSTR pszInfFilename, PCSTR pszInstallSection, return S_OK; } + +/*********************************************************************** + * TranslateInfStringEx (ADVPACK.@) + * + * Using a handle to an INF file opened with OpenINFEngine, translates + * the value of a specified key in an inf file into the current locale + * by expanding string macros. + * + * PARAMS + * hInf [I] Handle to the INF file. + * pszInfFilename [I] Filename of the INF file. + * pszTranslateSection [I] Inf section where the key exists. + * pszTranslateKey [I] Key to translate. + * pszBuffer [O] Contains the translated string on exit. + * dwBufferSize [I] Size on input of pszBuffer. + * pdwRequiredSize [O] Length of the translated key. + * pvReserved [I] Reserved. Must be NULL. + * + * RETURNS + * Success: S_OK. + * Failure: E_FAIL. + * + * NOTES + * To use TranslateInfStringEx to translate an INF file continuously, + * open the INF file with OpenINFEngine, call TranslateInfStringEx as + * many times as needed, then release the handle with CloseINFEngine. + * When translating more than one keys, this method is more efficient + * than calling TranslateInfString, because the INF file is only + * opened once. + * + * BUGS + * Unimplemented. + */ +HRESULT WINAPI TranslateInfStringEx(HINF hInf, PCSTR pszInfFilename, + PCSTR pszTranslateSection, PCSTR pszTranslateKey, + PSTR pszBuffer, DWORD dwBufferSize, + PDWORD pdwRequiredSize, PVOID pvReserved) +{ + FIXME("(%p, %p, %p, %p, %p, %ld, %p, %p) stub\n", hInf, pszInfFilename, + pszTranslateSection, pszTranslateKey, pszBuffer, dwBufferSize, + pdwRequiredSize, pvReserved); + + return E_FAIL; +} diff --git a/dlls/advpack/advpack.spec b/dlls/advpack/advpack.spec index 53790ae0e52..bb8487feea1 100644 --- a/dlls/advpack/advpack.spec +++ b/dlls/advpack/advpack.spec @@ -1,6 +1,6 @@ @ stdcall AddDelBackupEntry(str str str long) @ stdcall AdvInstallFile(long str str str str long long) -@ stub CloseINFEngine +@ stdcall CloseINFEngine(long) @ stdcall DelNode(str long) @ stdcall DelNodeRunDLL32(ptr ptr str long) @ stdcall -private DllMain(long long ptr) @@ -17,7 +17,7 @@ @ stdcall LaunchINFSectionEx(ptr ptr str long) @ stdcall NeedReboot(long) @ stdcall NeedRebootInit() -@ stub OpenINFEngine +@ stdcall OpenINFEngine(str str long ptr ptr) @ stub RebootCheckOnInstall @ stdcall RegInstall(ptr str ptr) @ stdcall RegRestoreAll(ptr str long) @@ -27,6 +27,6 @@ @ stdcall RunSetupCommand(long str str str str ptr long ptr) @ stub SetPerUserSecValues @ stdcall TranslateInfString(str str str str ptr long ptr ptr) -@ stub TranslateInfStringEx +@ stdcall TranslateInfStringEx(long str str str str long ptr ptr) @ stub UserInstStubWrapper @ stub UserUnInstStubWrapper diff --git a/include/advpub.h b/include/advpub.h index f45c45e59f5..aef373b4d77 100644 --- a/include/advpub.h +++ b/include/advpub.h @@ -46,6 +46,10 @@ typedef struct _StrTable { typedef const STRTABLE CSTRTABLE; typedef CSTRTABLE *LPCSTRTABLE; +#ifndef _INC_SETUPAPI +typedef PVOID HINF; +#endif + /* Flags for AddDelBackupEntry */ #define AADBE_ADD_ENTRY 0x01 #define AADBE_DEL_ENTRY 0x02 @@ -105,6 +109,7 @@ HRESULT WINAPI AddDelBackupEntry(LPCSTR lpcszFileList, LPCSTR lpcszBackupDir, HRESULT WINAPI AdvInstallFile(HWND hwnd, LPCSTR lpszSourceDir, LPCSTR lpszSourceFile, LPCSTR lpszDestDir, LPCSTR lpszDestFile, DWORD dwFlags, DWORD dwReserved); +HRESULT WINAPI CloseINFEngine(HINF hInf); HRESULT WINAPI DelNode(LPCSTR pszFileOrDirName, DWORD dwFlags); HRESULT WINAPI DelNodeRunDLL32(HWND,HINSTANCE,LPSTR,INT); HRESULT WINAPI ExecuteCab( HWND hwnd, PCABINFO pCab, LPVOID pReserved ); @@ -121,6 +126,8 @@ INT WINAPI LaunchINFSection(HWND,HINSTANCE,LPSTR,INT); HRESULT WINAPI LaunchINFSectionEx(HWND,HINSTANCE,LPSTR,INT); DWORD WINAPI NeedRebootInit(VOID); BOOL WINAPI NeedReboot(DWORD dwRebootCheck); +HRESULT WINAPI OpenINFEngine(PCSTR pszInfFilename, PCSTR pszInstallSection, + DWORD dwFlags, HINF *phInf, PVOID pvReserved); HRESULT WINAPI RegInstall(HMODULE hm, LPCSTR pszSection, LPCSTRTABLE pstTable); HRESULT WINAPI RegRestoreAll(HWND hWnd, PSTR pszTitleString, HKEY hkBackupKey); HRESULT WINAPI RegSaveRestore(HWND hWnd, PCSTR pszTitleString, HKEY hkBackupKey, @@ -133,6 +140,9 @@ HRESULT WINAPI RunSetupCommand(HWND hWnd, HRESULT WINAPI TranslateInfString(PCSTR pszInfFilename, PCSTR pszInstallSection, PCSTR pszTranslateSection, PCSTR pszTranslateKey, PSTR pszBuffer, DWORD dwBufferSize, PDWORD pdwRequiredSize, PVOID pvReserved); +HRESULT WINAPI TranslateInfStringEx(HINF hInf, PCSTR pszInfFilename, + PCSTR pszTranslateSection, PCSTR pszTranslateKey, PSTR pszBuffer, + DWORD dwBufferSize, PDWORD pdwRequiredSize, PVOID pvReserved); #ifdef __cplusplus }