40 #define MAX_FIELD_LENGTH 512 45 'S',
'O',
'F',
'T',
'W',
'A',
'R',
'E',
'\\',
46 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
47 'A',
'c',
't',
'i',
'v',
'e',
' ',
'S',
'e',
't',
'u',
'p',
'\\',
48 'I',
'n',
's',
't',
'a',
'l',
'l',
'e',
'd',
' ',
49 'C',
'o',
'm',
'p',
'o',
'n',
'e',
'n',
't',
's',0
76 static const WCHAR hklm[] = {
'H',
'K',
'L',
'M',0};
77 static const WCHAR hkcu[] = {
'H',
'K',
'C',
'U',0};
118 static const WCHAR source_dir[] = {
'S',
'o',
'u',
'r',
'c',
'e',
'D',
'i',
'r',0};
120 static const WCHAR custDestW[] = {
121 'C',
'u',
's',
't',
'o',
'm',
'D',
'e',
's',
't',
'i',
'n',
'a',
't',
'i',
'o',
'n',0
157 while (*
value ==
' ')
175 FIXME(
"Need to support changing paths - default will be used\n");
201 TRACE(
"(%p)\n", hInf);
293 FIXME(
"(VOID): stub\n");
313 FIXME(
"(%d): stub\n", dwRebootCheck);
331 if (!pszInfFilename || !phInf)
369 if (!pszInfFilename || !phInf)
395 if (!pszINF || !pszSec)
483 LPWSTR cmdline_copy, cmdline_ptr;
495 cmdline_ptr = cmdline_copy;
499 if (!ocx_filename || !*ocx_filename)
528 TRACE(
"(%p)\n", pPerUser);
562 static const WCHAR stub_path[] = {
'S',
't',
'u',
'b',
'P',
'a',
't',
'h',0};
563 static const WCHAR version[] = {
'V',
'e',
'r',
's',
'i',
'o',
'n',0};
564 static const WCHAR locale[] = {
'L',
'o',
'c',
'a',
'l',
'e',0};
565 static const WCHAR compid[] = {
'C',
'o',
'm',
'p',
'o',
'n',
'e',
'n',
't',
'I',
'D',0};
566 static const WCHAR isinstalled[] = {
'I',
's',
'I',
'n',
's',
't',
'a',
'l',
'l',
'e',
'd',0};
568 TRACE(
"(%p)\n", pPerUser);
570 if (!pPerUser || !*pPerUser->
szGUID)
640 TRACE(
"(%s, %s, %s, %s, %p, %d, %p, %p)\n",
643 pszBuffer, dwBufferSize,pdwRequiredSize,
pvReserved);
645 if (!pszInfFilename || !pszTranslateSection ||
646 !pszTranslateKey || !pdwRequiredSize)
670 if (dwBufferSize >= *pdwRequiredSize)
717 TRACE(
"(%s, %s, %s, %s, %p, %d, %p, %p)\n",
720 pszBuffer, dwBufferSize,pdwRequiredSize,
pvReserved);
722 if (!pszInfFilename || !pszTranslateSection ||
723 !pszTranslateKey || !pdwRequiredSize)
733 pszBuffer, dwBufferSize, pdwRequiredSize))
735 if (dwBufferSize < *pdwRequiredSize)
760 TRACE(
"(%p, %s, %s, %s, %p, %d, %p, %p)\n", hInf,
debugstr_a(pszInfFilename),
762 pszBuffer, dwBufferSize, pdwRequiredSize,
pvReserved);
764 if (!pszInfFilename || !pszTranslateSection ||
765 !pszTranslateKey || !pdwRequiredSize)
787 if (dwBufferSize >= *pdwRequiredSize)
840 TRACE(
"(%p, %s, %s, %s, %p, %d, %p, %p)\n", hInf,
debugstr_w(pszInfFilename),
842 pszBuffer, dwBufferSize, pdwRequiredSize,
pvReserved);
844 if (!hInf || !pszInfFilename || !pszTranslateSection || !pszTranslateKey)
848 pszBuffer, dwBufferSize, pdwRequiredSize))
850 if (dwBufferSize < *pdwRequiredSize)
914 static const WCHAR real_stub_path[] = {
915 'R',
'e',
'a',
'l',
'S',
't',
'u',
'b',
'P',
'a',
't',
'h',0
920 if (!pszParms || !*pszParms)
WCHAR szStub[MAX_PATH *4]
static void strip_quotes(WCHAR *buffer, DWORD *size)
HRESULT WINAPI UserUnInstStubWrapperW(HWND hWnd, HINSTANCE hInstance, LPWSTR pszParms, INT nShow)
BOOL WINAPI NeedReboot(DWORD dwRebootCheck)
BOOL WINAPI SetupFindFirstLineW(IN HINF InfHandle, IN PCWSTR Section, IN PCWSTR Key, IN OUT PINFCONTEXT Context)
HRESULT WINAPI UserInstStubWrapperA(HWND hWnd, HINSTANCE hInstance, LPSTR pszParms, INT nShow)
#define memmove(s1, s2, n)
HRESULT WINAPI OpenINFEngineW(LPCWSTR pszInfFilename, LPCWSTR pszInstallSection, DWORD dwFlags, HINF *phInf, PVOID pvReserved)
#define HRESULT_FROM_WIN32(x)
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
#define WideCharToMultiByte
BOOL WINAPI EqualSid(PSID pSid1, PSID pSid2)
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
#define HKEY_CURRENT_USER
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryExW(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags)
BOOL WINAPI IsNTAdmin(DWORD reserved, LPDWORD pReserved)
#define INVALID_HANDLE_VALUE
DWORD WINAPI GetLastError(VOID)
_Check_return_ long __cdecl wcstol(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
#define LOAD_WITH_ALTERED_SEARCH_PATH
HINF WINAPI SetupOpenInfFileW(PCWSTR name, PCWSTR class, DWORD style, UINT *error)
HRESULT WINAPI SetPerUserSecValuesW(PERUSERSECTIONW *pPerUser)
HRESULT WINAPI TranslateInfStringExA(HINF hInf, LPCSTR pszInfFilename, LPCSTR pszTranslateSection, LPCSTR pszTranslateKey, LPSTR pszBuffer, DWORD dwBufferSize, PDWORD pdwRequiredSize, PVOID pvReserved)
VOID WINAPI SetupCloseInfFile(IN HINF InfHandle)
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
HRESULT launch_exe(LPCWSTR cmd, LPCWSTR dir, HANDLE *phEXE) DECLSPEC_HIDDEN
int WINAPI lstrcmpiW(LPCWSTR lpString1, LPCWSTR lpString2)
static const WCHAR filenameW[]
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
PVOID WINAPI FreeSid(PSID pSid)
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
HRESULT WINAPI CloseINFEngine(HINF hInf)
static const WCHAR version[]
static const WCHAR setup_key[]
NTSYSAPI BOOLEAN NTAPI RtlCreateUnicodeStringFromAsciiz(_Out_ PUNICODE_STRING Destination, _In_ PCSZ Source)
#define ERROR_FILE_NOT_FOUND
#define SECURITY_NT_AUTHORITY
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
BOOL WINAPI SetupSetDirectoryIdW(HINF hinf, DWORD id, PCWSTR dir)
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
#define SECURITY_BUILTIN_DOMAIN_RID
_CONST_RETURN wchar_t *__cdecl wcschr(_In_z_ const wchar_t *_Str, wchar_t _Ch)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
static const WCHAR infW[]
static LPCSTR DWORD void * pvReserved
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
HRESULT WINAPI OpenINFEngineA(LPCSTR pszInfFilename, LPCSTR pszInstallSection, DWORD dwFlags, HINF *phInf, PVOID pvReserved)
_In_opt_ PVOID _In_ ULONG _In_ PVOID context
HRESULT WINAPI RebootCheckOnInstallW(HWND hWnd, LPCWSTR pszINF, LPCWSTR pszSec, DWORD dwReserved)
DWORD WINAPI NeedRebootInit(VOID)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
#define SPAPI_E_LINE_NOT_FOUND
WINE_DEFAULT_DEBUG_CHANNEL(advpack)
#define GetCurrentProcess()
GLsizei const GLfloat * value
HRESULT WINAPI RegisterOCX(HWND hWnd, HINSTANCE hInst, LPCSTR cmdline, INT show)
LPWSTR get_parameter(LPWSTR *params, WCHAR separator, BOOL quoted) DECLSPEC_HIDDEN
#define E_NOT_SUFFICIENT_BUFFER
HRESULT WINAPI UserUnInstStubWrapperA(HWND hWnd, HINSTANCE hInstance, LPSTR pszParms, INT nShow)
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
HRESULT WINAPI TranslateInfStringW(LPCWSTR pszInfFilename, LPCWSTR pszInstallSection, LPCWSTR pszTranslateSection, LPCWSTR pszTranslateKey, LPWSTR pszBuffer, DWORD dwBufferSize, PDWORD pdwRequiredSize, PVOID pvReserved)
SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY]
HRESULT WINAPI TranslateInfStringA(LPCSTR pszInfFilename, LPCSTR pszInstallSection, LPCSTR pszTranslateSection, LPCSTR pszTranslateKey, LPSTR pszBuffer, DWORD dwBufferSize, PDWORD pdwRequiredSize, PVOID pvReserved)
BOOL WINAPI OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle)
HRESULT WINAPI RebootCheckOnInstallA(HWND hWnd, LPCSTR pszINF, LPCSTR pszSec, DWORD dwReserved)
void set_ldids(HINF hInf, LPCWSTR pszInstallSection, LPCWSTR pszWorkingDir)
BOOL WINAPI SetupFindNextLine(IN PINFCONTEXT ContextIn, OUT PINFCONTEXT ContextOut)
#define MultiByteToWideChar
static void get_dest_dir(HINF hInf, PCWSTR pszSection, PWSTR pszBuffer, DWORD dwSize)
HRESULT WINAPI UserInstStubWrapperW(HWND hWnd, HINSTANCE hInstance, LPWSTR pszParms, INT nShow)
BOOL WINAPI GetTokenInformation(HANDLE TokenHandle, TOKEN_INFORMATION_CLASS TokenInformationClass, LPVOID TokenInformation, DWORD TokenInformationLength, PDWORD ReturnLength)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
#define GetProcAddress(x, y)
HRESULT(WINAPI * DLLREGISTER)(void)
HRESULT do_ocx_reg(HMODULE hocx, BOOL do_reg, const WCHAR *flags, const WCHAR *param)
static HRESULT(WINAPI *pCloseINFEngine)(HINF)
HRESULT WINAPI SetPerUserSecValuesA(PERUSERSECTIONA *pPerUser)
#define DOMAIN_ALIAS_RID_ADMINS
#define HeapFree(x, y, z)
#define RegCloseKey(hKey)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
HRESULT WINAPI TranslateInfStringExW(HINF hInf, LPCWSTR pszInfFilename, LPCWSTR pszTranslateSection, LPCWSTR pszTranslateKey, LPWSTR pszBuffer, DWORD dwBufferSize, PDWORD pdwRequiredSize, PVOID pvReserved)
BOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, BYTE nSubAuthorityCount, DWORD nSubAuthority0, DWORD nSubAuthority1, DWORD nSubAuthority2, DWORD nSubAuthority3, DWORD nSubAuthority4, DWORD nSubAuthority5, DWORD nSubAuthority6, DWORD nSubAuthority7, PSID *pSid)
#define HKEY_LOCAL_MACHINE
#define ERROR_INSUFFICIENT_BUFFER
BOOL WINAPI SetupGetLineTextW(PINFCONTEXT context, HINF hinf, PCWSTR section_name, PCWSTR key_name, PWSTR buffer, DWORD size, PDWORD required)
BOOL WINAPI SetupGetStringFieldW(IN PINFCONTEXT Context, IN ULONG FieldIndex, OUT PWSTR ReturnBuffer, IN ULONG ReturnBufferSize, OUT PULONG RequiredSize)