Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
e726b54c
Commit
e726b54c
authored
Nov 13, 2012
by
Nikolay Sivov
Committed by
Alexandre Julliard
Nov 14, 2012
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msi: Cache ITypeInfo instances for automation objects instead of reloading every time.
parent
55f0663e
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
20 additions
and
3 deletions
+20
-3
automation.c
dlls/msi/automation.c
+0
-0
msi_main.c
dlls/msi/msi_main.c
+1
-0
msipriv.h
dlls/msi/msipriv.h
+13
-1
script.c
dlls/msi/script.c
+6
-2
No files found.
dlls/msi/automation.c
View file @
e726b54c
This diff is collapsed.
Click to expand it.
dlls/msi/msi_main.c
View file @
e726b54c
...
...
@@ -79,6 +79,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
msi_dialog_unregister_class
();
msi_free_handle_table
();
msi_free
(
gszLogFile
);
release_typelib
();
break
;
}
return
TRUE
;
...
...
dlls/msi/msipriv.h
View file @
e726b54c
...
...
@@ -1072,9 +1072,21 @@ extern VOID ControlEvent_SubscribeToEvent(MSIPACKAGE *package, msi_dialog *dialo
LPCWSTR
event
,
LPCWSTR
control
,
LPCWSTR
attribute
)
DECLSPEC_HIDDEN
;
/* OLE automation */
typedef
enum
tid_t
{
Database_tid
,
Installer_tid
,
Record_tid
,
Session_tid
,
StringList_tid
,
SummaryInfo_tid
,
View_tid
,
LAST_tid
}
tid_t
;
extern
HRESULT
create_msiserver
(
IUnknown
*
pOuter
,
LPVOID
*
ppObj
)
DECLSPEC_HIDDEN
;
extern
HRESULT
create_session
(
MSIHANDLE
msiHandle
,
IDispatch
*
pInstaller
,
IDispatch
**
pDispatch
)
DECLSPEC_HIDDEN
;
extern
HRESULT
load_type_info
(
IDispatch
*
iface
,
ITypeInfo
**
pptinfo
,
REFIID
clsid
,
LCID
lcid
)
DECLSPEC_HIDDEN
;
extern
HRESULT
get_typeinfo
(
tid_t
tid
,
ITypeInfo
**
ti
)
DECLSPEC_HIDDEN
;
extern
void
release_typelib
(
void
)
DECLSPEC_HIDDEN
;
/* Scripting */
extern
DWORD
call_script
(
MSIHANDLE
hPackage
,
INT
type
,
LPCWSTR
script
,
LPCWSTR
function
,
LPCWSTR
action
)
DECLSPEC_HIDDEN
;
...
...
dlls/msi/script.c
View file @
e726b54c
...
...
@@ -268,8 +268,12 @@ static HRESULT WINAPI MsiActiveScriptSite_GetItemInfo(IActiveScriptSite* iface,
/* Are we looking for the session object? */
if
(
!
strcmpW
(
szSession
,
pstrName
))
{
if
(
dwReturnMask
&
SCRIPTINFO_ITYPEINFO
)
return
load_type_info
(
This
->
pSession
,
ppti
,
&
DIID_Session
,
0
);
if
(
dwReturnMask
&
SCRIPTINFO_ITYPEINFO
)
{
HRESULT
hr
=
get_typeinfo
(
Session_tid
,
ppti
);
if
(
SUCCEEDED
(
hr
))
ITypeInfo_AddRef
(
*
ppti
);
return
hr
;
}
else
if
(
dwReturnMask
&
SCRIPTINFO_IUNKNOWN
)
{
IDispatch_QueryInterface
(
This
->
pSession
,
&
IID_IUnknown
,
(
void
**
)
ppiunkItem
);
return
S_OK
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment