38#define CHARS_IN_GUID 39
101 IMoniker_AddRef(iface);
133 if (
This->pMarshal) IUnknown_Release(
This->pMarshal);
145 TRACE(
"(%p,%p),stub!\n",iface,pClassID);
150 *pClassID = CLSID_ClassMoniker;
164 TRACE(
"(%p)\n",iface);
178 TRACE(
"(%p)\n", pStm);
198 TRACE(
"(%p, %s)\n", pStm, fClearDirty ?
"TRUE" :
"FALSE");
200 hr = IStream_Write(pStm, &
This->clsid,
sizeof(
This->clsid),
NULL);
212 TRACE(
"(%p)\n", pcbSize);
235 bindopts.cbStruct =
sizeof(bindopts);
236 IBindCtx_GetBindOptions(pbc, (BIND_OPTS *)&bindopts);
243 hr = IMoniker_BindToObject(pmkToLeft, pbc,
NULL, &IID_IClassActivator,
244 (
void **)&pActivator);
247 hr = IClassActivator_GetClassObject(pActivator, &
This->clsid,
248 bindopts.dwClassContext,
249 bindopts.locale,
riid, ppvResult);
251 IClassActivator_Release(pActivator);
267 return IMoniker_BindToObject(iface, pbc, pmkToLeft,
riid, ppvResult);
275 DWORD dwReduceHowFar,
279 TRACE(
"(%p,%p,%d,%p,%p)\n",iface,pbc,dwReduceHowFar,ppmkToLeft,ppmkReduced);
284 IMoniker_AddRef(iface);
286 *ppmkReduced = iface;
295 BOOL fOnlyIfNotGeneric,
304 TRACE(
"(%p,%d,%p)\n", pmkRight, fOnlyIfNotGeneric, ppmkComposite);
306 if ((ppmkComposite==
NULL)||(pmkRight==
NULL))
311 IMoniker_IsSystemMoniker(pmkRight,&mkSys);
314 if(mkSys==MKSYS_ANTIMONIKER)
321 if(mkSys==MKSYS_GENERICCOMPOSITE){
323 res=IMoniker_Enum(pmkRight,
TRUE,&penumMk);
328 res=IEnumMoniker_Next(penumMk,1,&pmostLeftMk,
NULL);
330 IMoniker_IsSystemMoniker(pmostLeftMk,&mkSys2);
332 if(mkSys2==MKSYS_ANTIMONIKER){
334 IMoniker_Release(pmostLeftMk);
336 tempMkComposite=iface;
337 IMoniker_AddRef(iface);
339 while(IEnumMoniker_Next(penumMk,1,&pmostLeftMk,
NULL)==
S_OK){
343 IMoniker_Release(tempMkComposite);
344 IMoniker_Release(pmostLeftMk);
346 tempMkComposite=*ppmkComposite;
347 IMoniker_AddRef(tempMkComposite);
358 if (!fOnlyIfNotGeneric)
370 TRACE(
"(%p,%d,%p)\n",iface,fForward,ppenumMoniker);
372 if (ppenumMoniker ==
NULL)
375 *ppenumMoniker =
NULL;
391 TRACE(
"(%p,%p)\n",iface,pmkOtherMoniker);
393 if (!pmkOtherMoniker)
return S_FALSE;
420 TRACE(
"(%p)\n", pdwHash);
422 *pdwHash =
This->clsid.Data1;
435 TRACE(
"(%p, %p, %p)\n", pbc, pmkToLeft, pmkNewlyRunning);
449 TRACE(
"(%p, %p, %p)\n", pbc, pmkToLeft, pItemTime);
459 TRACE(
"(%p)\n",ppmk);
474 TRACE(
"(%p, %p)\n", pmkOther, ppmkPrefix);
478 IMoniker_IsSystemMoniker(pmkOther, &mkSys);
483 if (mkSys == MKSYS_CLASSMONIKER)
485 if (IMoniker_IsEqual(iface, pmkOther) ==
S_OK)
489 IMoniker_AddRef(iface);
507 TRACE(
"(%p, %p)\n",pmOther,ppmkRelPath);
526 static const WCHAR wszClsidPrefix[] = {
'c',
'l',
's',
'i',
'd',
':',0};
528 TRACE(
"(%p, %p, %p)\n", pbc, pmkToLeft, ppszDisplayName);
530 if (!ppszDisplayName)
541 memcpy(*ppszDisplayName, wszClsidPrefix,
sizeof(wszClsidPrefix)-
sizeof(
WCHAR));
561 FIXME(
"(%p, %p, %s, %p, %p)\n", pbc, pmkToLeft,
debugstr_w(pszDisplayName), pchEaten, ppmkOut);
570 TRACE(
"(%p,%p)\n",iface,pwdMksys);
575 *pwdMksys = MKSYS_CLASSMONIKER;
600 TRACE(
"(%p)\n",iface);
602 return IMoniker_AddRef(&
This->IMoniker_iface);
612 TRACE(
"(%p)\n",iface);
614 return IMoniker_Release(&
This->IMoniker_iface);
692 This->clsid = *rclsid;
710 if (!newClassMoniker)
748 if ((
end -
s != 38) || (
s[37] !=
'}'))
760 if ((
i == 8)||(
i == 13)||(
i == 18)||(
i == 23))
766 if (!(((
s[
i] >=
'0') && (
s[
i] <=
'9')) ||
767 ((
s[
i] >=
'a') && (
s[
i] <=
'f')) ||
768 ((
s[
i] >=
'A') && (
s[
i] <=
'F'))))
775 for (
i = 0;
i < 10;
i++)
777 for (
i = 0;
i < 6;
i++)
802 *pchEaten = (*
end ==
':' ?
end + 1 :
end) - szDisplayName;
822 hr = IMoniker_QueryInterface(pmk,
riid,
ppv);
823 IMoniker_Release(pmk);
HRESULT WINAPI CreateAntiMoniker(IMoniker **ppmk)
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static HRESULT WINAPI ClassMoniker_Enum(IMoniker *iface, BOOL fForward, IEnumMoniker **ppenumMoniker)
static HRESULT WINAPI ClassMoniker_GetSizeMax(IMoniker *iface, ULARGE_INTEGER *pcbSize)
static HRESULT WINAPI ClassMoniker_QueryInterface(IMoniker *iface, REFIID riid, void **ppvObject)
static ULONG WINAPI ClassMoniker_AddRef(IMoniker *iface)
static HRESULT WINAPI ClassMoniker_Save(IMoniker *iface, IStream *pStm, BOOL fClearDirty)
static HRESULT WINAPI ClassMoniker_ComposeWith(IMoniker *iface, IMoniker *pmkRight, BOOL fOnlyIfNotGeneric, IMoniker **ppmkComposite)
static HRESULT WINAPI ClassMoniker_BindToObject(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, REFIID riid, VOID **ppvResult)
static HRESULT WINAPI ClassMoniker_BindToStorage(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, REFIID riid, VOID **ppvResult)
static ULONG WINAPI ClassMoniker_Release(IMoniker *iface)
static ULONG WINAPI ClassMonikerROTData_Release(IROTData *iface)
static HRESULT WINAPI ClassMonikerROTData_GetComparisonData(IROTData *iface, BYTE *pbData, ULONG cbMax, ULONG *pcbData)
HRESULT WINAPI CreateClassMoniker(REFCLSID rclsid, IMoniker **ppmk)
HRESULT WINAPI ClassMoniker_CreateInstance(IClassFactory *iface, IUnknown *pUnk, REFIID riid, void **ppv)
struct ClassMoniker ClassMoniker
static HRESULT WINAPI ClassMoniker_IsSystemMoniker(IMoniker *iface, DWORD *pwdMksys)
static HRESULT WINAPI ClassMoniker_IsDirty(IMoniker *iface)
static const IMonikerVtbl ClassMonikerVtbl
static HRESULT WINAPI ClassMoniker_Load(IMoniker *iface, IStream *pStm)
static HRESULT WINAPI ClassMoniker_IsEqual(IMoniker *iface, IMoniker *pmkOtherMoniker)
static const IROTDataVtbl ROTDataVtbl
HRESULT ClassMoniker_CreateFromDisplayName(LPBC pbc, LPCOLESTR szDisplayName, LPDWORD pchEaten, IMoniker **ppmk)
static HRESULT WINAPI ClassMoniker_GetClassID(IMoniker *iface, CLSID *pClassID)
static HRESULT WINAPI ClassMoniker_CommonPrefixWith(IMoniker *iface, IMoniker *pmkOther, IMoniker **ppmkPrefix)
static HRESULT WINAPI ClassMoniker_IsRunning(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, IMoniker *pmkNewlyRunning)
static HRESULT WINAPI ClassMonikerROTData_QueryInterface(IROTData *iface, REFIID riid, VOID **ppvObject)
static ClassMoniker * impl_from_IROTData(IROTData *iface)
static HRESULT WINAPI ClassMoniker_Inverse(IMoniker *iface, IMoniker **ppmk)
static HRESULT WINAPI ClassMoniker_RelativePathTo(IMoniker *iface, IMoniker *pmOther, IMoniker **ppmkRelPath)
static ULONG WINAPI ClassMonikerROTData_AddRef(IROTData *iface)
static HRESULT WINAPI ClassMoniker_ParseDisplayName(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, LPOLESTR pszDisplayName, ULONG *pchEaten, IMoniker **ppmkOut)
static HRESULT WINAPI ClassMoniker_GetDisplayName(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, LPOLESTR *ppszDisplayName)
static ClassMoniker * impl_from_IMoniker(IMoniker *iface)
static HRESULT WINAPI ClassMoniker_Reduce(IMoniker *iface, IBindCtx *pbc, DWORD dwReduceHowFar, IMoniker **ppmkToLeft, IMoniker **ppmkReduced)
static HRESULT WINAPI ClassMoniker_Hash(IMoniker *iface, DWORD *pdwHash)
static HRESULT ClassMoniker_Construct(ClassMoniker *This, REFCLSID rclsid)
static HRESULT WINAPI ClassMoniker_GetTimeOfLastChange(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, FILETIME *pItemTime)
HRESULT WINAPI MonikerCommonPrefixWith(IMoniker *pmkThis, IMoniker *pmkOther, IMoniker **ppmkCommon)
HRESULT WINAPI CreateGenericComposite(IMoniker *pmkFirst, IMoniker *pmkRest, IMoniker **ppmkComposite)
#define HeapFree(x, y, z)
HRESULT WINAPI DECLSPEC_HOTPATCH CoGetClassObject(REFCLSID rclsid, DWORD dwClsContext, COSERVERINFO *pServerInfo, REFIID iid, LPVOID *ppv)
INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
HRESULT MonikerMarshal_Create(IMoniker *inner, IUnknown **outer)
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
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
VOID WINAPI CoTaskMemFree(LPVOID ptr)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
#define memcpy(s1, s2, n)
interface IBindCtx * LPBC
HRESULT WINAPI CreateBindCtx(DWORD reserved, LPBC *ppbc)
const GUID IID_IPersistStream
#define IsEqualIID(riid1, riid2)
#define IsEqualCLSID(rclsid1, rclsid2)
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
INT WSAAPI bind(IN SOCKET s, IN CONST struct sockaddr *name, IN INT namelen)
#define CONTAINING_RECORD(address, type, field)
_In_ HCRYPTHASH _In_ BOOL _In_ DWORD _Inout_updates_bytes_to_ pdwDataLen BYTE * pbData
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
_In_ DWORD _Out_writes_bytes_to_opt_ pcbData void _Inout_ DWORD * pcbData
#define MK_S_REDUCED_TO_SELF
#define CLASS_E_NOAGGREGATION
#define STG_E_INSUFFICIENTMEMORY