ReactOS 0.4.16-dev-122-g325d74c
dispatch.c
Go to the documentation of this file.
1/*
2 * Generic Implementation of IDispatch for strmbase classes
3 *
4 * Copyright 2012 Aric Stewart, CodeWeavers
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 */
20
21#define COBJMACROS
22
23#include "dshow.h"
24#include "wine/unicode.h"
25#include "wine/strmbase.h"
26#include "uuids.h"
27#include "vfwmsgs.h"
28#include <assert.h>
29
31{
32 ITypeLib *pTypeLib;
33 HRESULT hr;
34
35 This->pTypeInfo = NULL;
36 hr = LoadRegTypeLib(&LIBID_QuartzTypeLib, 1, 0, LOCALE_SYSTEM_DEFAULT, &pTypeLib);
37 if (SUCCEEDED(hr))
38 {
39 hr = ITypeLib_GetTypeInfoOfGuid(pTypeLib, riid, &This->pTypeInfo);
40 ITypeLib_Release(pTypeLib);
41 }
42 return hr;
43}
44
46{
47 if (This->pTypeInfo)
48 ITypeInfo_Release(This->pTypeInfo);
49 return S_OK;
50}
51
53{
54 if (This->pTypeInfo)
55 return ITypeInfo_GetIDsOfNames(This->pTypeInfo, rgszNames, cNames, rgdispid);
56 return E_NOTIMPL;
57}
58
60{
61 if (This->pTypeInfo)
62 {
63 ITypeInfo_AddRef(This->pTypeInfo);
64 *pptinfo = This->pTypeInfo;
65 return S_OK;
66 }
67 return E_NOTIMPL;
68}
69
71{
72 if (This->pTypeInfo)
73 *pctinfo = 1;
74 else
75 *pctinfo = 0;
76 return S_OK;
77}
#define E_NOTIMPL
Definition: ddrawi.h:99
#define NULL
Definition: types.h:112
WCHAR OLECHAR
Definition: compat.h:2292
HRESULT WINAPI LoadRegTypeLib(REFGUID rguid, WORD wVerMajor, WORD wVerMinor, LCID lcid, ITypeLib **ppTLib)
Definition: typelib.c:531
REFIID riid
Definition: atlbase.h:39
#define S_OK
Definition: intsafe.h:52
#define SUCCEEDED(hr)
Definition: intsafe.h:50
static VARIANTARG static DISPID
Definition: ordinal.c:52
unsigned int UINT
Definition: ndis.h:50
#define LOCALE_SYSTEM_DEFAULT
#define REFIID
Definition: guiddef.h:118
DWORD LCID
Definition: nls.h:13
HRESULT WINAPI BaseDispatchImpl_GetTypeInfoCount(BaseDispatch *This, UINT *pctinfo)
Definition: dispatch.c:70
HRESULT WINAPI BaseDispatchImpl_GetIDsOfNames(BaseDispatch *This, REFIID riid, OLECHAR **rgszNames, UINT cNames, LCID lcid, DISPID *rgdispid)
Definition: dispatch.c:52
HRESULT WINAPI BaseDispatch_Init(BaseDispatch *This, REFIID riid)
Definition: dispatch.c:30
HRESULT WINAPI BaseDispatch_Destroy(BaseDispatch *This)
Definition: dispatch.c:45
HRESULT WINAPI BaseDispatchImpl_GetTypeInfo(BaseDispatch *This, REFIID riid, UINT itinfo, LCID lcid, ITypeInfo **pptinfo)
Definition: dispatch.c:59
HRESULT hr
Definition: shlfolder.c:183
#define WINAPI
Definition: msvc.h:6