Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
03ec2183
Commit
03ec2183
authored
Oct 09, 2006
by
Huw Davies
Committed by
Alexandre Julliard
Oct 09, 2006
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
oleaut32: Implement ITypeInfo_CreateInstance.
parent
4ff712c9
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
45 additions
and
3 deletions
+45
-3
typelib.c
dlls/oleaut32/typelib.c
+45
-3
No files found.
dlls/oleaut32/typelib.c
View file @
03ec2183
...
...
@@ -5867,11 +5867,53 @@ static HRESULT WINAPI ITypeInfo_fnAddressOfMember( ITypeInfo2 *iface,
* (coclass).
*/
static
HRESULT
WINAPI
ITypeInfo_fnCreateInstance
(
ITypeInfo2
*
iface
,
IUnknown
*
pUnk
,
REFIID
riid
,
VOID
**
ppvObj
)
IUnknown
*
p
Outer
Unk
,
REFIID
riid
,
VOID
**
ppvObj
)
{
ITypeInfoImpl
*
This
=
(
ITypeInfoImpl
*
)
iface
;
FIXME
(
"(%p) stub!
\n
"
,
This
);
return
S_OK
;
HRESULT
hr
;
TYPEATTR
*
pTA
;
TRACE
(
"(%p)->(%p, %s, %p)
\n
"
,
This
,
pOuterUnk
,
debugstr_guid
(
riid
),
ppvObj
);
*
ppvObj
=
NULL
;
if
(
pOuterUnk
)
{
WARN
(
"Not able to aggregate
\n
"
);
return
CLASS_E_NOAGGREGATION
;
}
hr
=
ITypeInfo_GetTypeAttr
(
iface
,
&
pTA
);
if
(
FAILED
(
hr
))
return
hr
;
if
(
pTA
->
typekind
!=
TKIND_COCLASS
)
{
WARN
(
"CreateInstance on typeinfo of type %x
\n
"
,
pTA
->
typekind
);
hr
=
E_INVALIDARG
;
goto
end
;
}
hr
=
S_FALSE
;
if
(
pTA
->
wTypeFlags
&
TYPEFLAG_FAPPOBJECT
)
{
IUnknown
*
pUnk
;
hr
=
GetActiveObject
(
&
pTA
->
guid
,
NULL
,
&
pUnk
);
TRACE
(
"GetActiveObject rets %08lx
\n
"
,
hr
);
if
(
hr
==
S_OK
)
{
hr
=
IUnknown_QueryInterface
(
pUnk
,
riid
,
ppvObj
);
IUnknown_Release
(
pUnk
);
}
}
if
(
hr
!=
S_OK
)
hr
=
CoCreateInstance
(
&
pTA
->
guid
,
NULL
,
CLSCTX_INPROC_SERVER
|
CLSCTX_LOCAL_SERVER
,
riid
,
ppvObj
);
end:
ITypeInfo_ReleaseTypeAttr
(
iface
,
pTA
);
return
hr
;
}
/* ITypeInfo::GetMops
...
...
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