34 #include "msiserver.h" 40 #define IActiveScriptParse_Release IActiveScriptParse64_Release 41 #define IActiveScriptParse_InitNew IActiveScriptParse64_InitNew 42 #define IActiveScriptParse_ParseScriptText IActiveScriptParse64_ParseScriptText 46 #define IActiveScriptParse_Release IActiveScriptParse32_Release 47 #define IActiveScriptParse_InitNew IActiveScriptParse32_InitNew 48 #define IActiveScriptParse_ParseScriptText IActiveScriptParse32_ParseScriptText 79 IActiveScriptSite_AddRef(iface);
121 TRACE(
"(%p)->(%p, %lu, %p, %p)\n",
This, pstrName, dwReturnMask, ppiunkItem, ppti );
124 if (dwReturnMask & SCRIPTINFO_ITYPEINFO) {
128 if (dwReturnMask & SCRIPTINFO_IUNKNOWN) {
134 if (!
wcscmp(
L"Session", pstrName)) {
135 if (dwReturnMask & SCRIPTINFO_ITYPEINFO) {
138 ITypeInfo_AddRef(*ppti);
141 else if (dwReturnMask & SCRIPTINFO_IUNKNOWN) {
142 IDispatch_QueryInterface(
This->session, &
IID_IUnknown, (
void **)ppiunkItem);
153 TRACE(
"(%p)->(%p)\n",
This, pbstrVersion);
160 TRACE(
"(%p)->(%p, %p)\n",
This, pvarResult, pexcepinfo);
166 switch (ssScriptState) {
168 TRACE(
"State: Uninitialized.\n");
172 TRACE(
"State: Initialized.\n");
176 TRACE(
"State: Started.\n");
180 TRACE(
"State: Connected.\n");
184 TRACE(
"State: Disconnected.\n");
188 TRACE(
"State: Closed.\n");
192 ERR(
"Unknown State: %d\n", ssScriptState);
205 TRACE(
"(%p)->(%p)\n",
This, pscripterror);
208 hr = IActiveScriptError_GetExceptionInfo(pscripterror, &
exception);
263 object->installer =
NULL;
264 object->session =
NULL;
292 IActiveScriptParse *pActiveScriptParse =
NULL;
305 if (
hr !=
S_OK)
goto done;
309 if (
hr !=
S_OK)
goto done;
313 if (
hr !=
S_OK)
goto done;
322 ERR(
"Unknown script type %d\n",
type);
326 ERR(
"Could not find CLSID for Windows Script\n");
331 ERR(
"Could not instantiate class for Windows Script\n");
335 hr = IActiveScript_QueryInterface(pActiveScript, &IID_IActiveScriptParse, (
void **)&pActiveScriptParse);
344 hr = IActiveScript_AddNamedItem(pActiveScript,
L"Session", SCRIPTITEM_GLOBALMEMBERS|SCRIPTITEM_ISVISIBLE);
354 if (
function &&
function[0]) {
357 hr = IActiveScript_GetScriptDispatch(pActiveScript,
NULL, &pDispatch);
379 if (pDispatch) IDispatch_Release(pDispatch);
380 if (pActiveScript) IActiveScript_Release(pActiveScript);
HRESULT WINAPI DECLSPEC_HOTPATCH VariantChangeType(VARIANTARG *pvargDest, VARIANTARG *pvargSrc, USHORT wFlags, VARTYPE vt)
static HRESULT WINAPI MsiActiveScriptSite_OnLeaveScript(IActiveScriptSite *iface)
static HRESULT WINAPI MsiActiveScriptSite_OnScriptError(IActiveScriptSite *iface, IActiveScriptError *pscripterror)
coclass MSXML2::XSLTemplate40 object
static ULONG WINAPI MsiActiveScriptSite_AddRef(IActiveScriptSite *iface)
#define IActiveScriptParse_Release
static ULONG WINAPI MsiActiveScriptSite_Release(IActiveScriptSite *iface)
#define LOCALE_USER_DEFAULT
WINE_DEFAULT_DEBUG_CHANNEL(msi)
static HRESULT WINAPI MsiActiveScriptSite_OnStateChange(IActiveScriptSite *iface, SCRIPTSTATE ssScriptState)
static void msi_free(void *mem)
HRESULT WINAPI DECLSPEC_HOTPATCH CLSIDFromProgID(LPCOLESTR progid, LPCLSID clsid)
static HRESULT WINAPI MsiActiveScriptSite_OnScriptTerminate(IActiveScriptSite *iface, const VARIANT *pvarResult, const EXCEPINFO *pexcepinfo)
HRESULT create_session(MSIHANDLE msiHandle, IDispatch *installer, IDispatch **disp)
HRESULT create_msiserver(IUnknown *outer, void **ppObj)
static HRESULT WINAPI MsiActiveScriptSite_GetDocVersionString(IActiveScriptSite *iface, BSTR *pbstrVersion)
static HRESULT create_activescriptsite(MsiActiveScriptSite **obj)
static UINT map_return_value(LONG val)
HRESULT get_typeinfo(enum type_id tid, ITypeInfo **ret)
enum tagSCRIPTSTATE SCRIPTSTATE
static HRESULT WINAPI MsiActiveScriptSite_GetLCID(IActiveScriptSite *iface, LCID *plcid)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
DWORD call_script(MSIHANDLE hPackage, INT type, LPCWSTR script, LPCWSTR function, LPCWSTR action)
#define ERROR_INSTALL_USEREXIT
static HRESULT WINAPI MsiActiveScriptSite_OnEnterScript(IActiveScriptSite *iface)
#define ERROR_INSTALL_FAILURE
#define IActiveScriptParse_ParseScriptText
#define IActiveScriptParse_InitNew
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
#define InterlockedDecrement
IActiveScriptSite IActiveScriptSite_iface
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
static const struct IActiveScriptSiteVtbl activescriptsitevtbl
static HRESULT WINAPI MsiActiveScriptSite_QueryInterface(IActiveScriptSite *iface, REFIID riid, void **obj)
#define ERROR_INSTALL_SUSPEND
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
struct stdole::EXCEPINFO EXCEPINFO
static VARIANTARG static DISPID
#define InterlockedIncrement
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
static HRESULT WINAPI MsiActiveScriptSite_GetItemInfo(IActiveScriptSite *iface, LPCOLESTR pstrName, DWORD dwReturnMask, IUnknown **ppiunkItem, ITypeInfo **ppti)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
struct stdole::DISPPARAMS DISPPARAMS
static MsiActiveScriptSite * impl_from_IActiveScriptSite(IActiveScriptSite *iface)
#define TYPE_E_ELEMENTNOTFOUND
static void * msi_alloc(size_t len) __WINE_ALLOC_SIZE(1)
GLuint GLuint GLsizei GLenum type