James Hawkins : advpack: Add stubs for CloseINFEngine, OpenINFEngine,
and
Alexandre Julliard
julliard at wine.codeweavers.com
Sat Jan 14 10:56:36 CST 2006
Module: wine
Branch: refs/heads/master
Commit: 461904cb6ebc4515141bc846fbed0df7bcab8079
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=461904cb6ebc4515141bc846fbed0df7bcab8079
Author: James Hawkins <truiken at gmail.com>
Date: Sat Jan 14 17:10:16 2006 +0100
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 9c6ac1a..4fcae96 100644
--- a/dlls/advpack/advpack.c
+++ b/dlls/advpack/advpack.c
@@ -37,6 +37,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.@)
*/
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
@@ -245,6 +266,35 @@ BOOL WINAPI NeedReboot(DWORD dwRebootChe
}
/***********************************************************************
+ * 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.@)
*/
void WINAPI RegisterOCX( HWND hWnd, HINSTANCE hInst, LPCSTR cmdline, INT show )
@@ -361,3 +411,47 @@ HRESULT WINAPI TranslateInfString(PCSTR
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 53790ae..bb8487f 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 f45c45e..aef373b 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
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,HINSTAN
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
}
More information about the wine-cvs
mailing list