38#define CHARS_IN_GUID 39
99 *ppvObject = &
This->IROTData_iface;
107 return IUnknown_QueryInterface(
This->pMarshal,
riid, ppvObject);
113 IMoniker_AddRef(iface);
135 TRACE(
"%p, refcount %lu.\n", iface,
ref);
152 TRACE(
"(%p, %p)\n", iface, pClassID);
157 *pClassID = CLSID_ClassMoniker;
171 TRACE(
"(%p)\n",iface);
192 WARN(
"Failed to allocate moniker data of size %lu.\n",
moniker->header.data_len);
245 bindopts.cbStruct =
sizeof(bindopts);
246 IBindCtx_GetBindOptions(pbc, (BIND_OPTS *)&bindopts);
253 hr = IMoniker_BindToObject(pmkToLeft, pbc,
NULL, &IID_IClassActivator,
254 (
void **)&pActivator);
257 hr = IClassActivator_GetClassObject(pActivator, &
moniker->header.clsid,
258 bindopts.dwClassContext,
259 bindopts.locale,
riid, ppvResult);
261 IClassActivator_Release(pActivator);
277 return IMoniker_BindToObject(iface, pbc, pmkToLeft,
riid, ppvResult);
283 TRACE(
"%p, %p, %ld, %p, %p.\n", iface, pbc, dwReduceHowFar, ppmkToLeft, ppmkReduced);
288 IMoniker_AddRef(iface);
290 *ppmkReduced = iface;
318 TRACE(
"(%p,%d,%p)\n",iface,fForward,ppenumMoniker);
320 if (ppenumMoniker ==
NULL)
323 *ppenumMoniker =
NULL;
363 TRACE(
"(%p, %p, %p)\n", pbc, pmkToLeft, pmkNewlyRunning);
377 TRACE(
"(%p, %p, %p)\n", pbc, pmkToLeft, pItemTime);
387 TRACE(
"(%p)\n",ppmk);
410 IMoniker_AddRef(iface);
423 TRACE(
"(%p, %p)\n",pmOther,ppmkRelPath);
440 TRACE(
"%p, %p, %p, %p.\n", iface, pbc, pmkToLeft,
name);
451 swprintf(*
name, name_len,
L"clsid:%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X",
470 TRACE(
"%p, %p, %p, %s, %p, %p\n", iface, pbc, pmkToLeft,
debugstr_w(display_name), eaten,
result);
474 hr = IParseDisplayName_ParseDisplayName(
parser, pbc, display_name, eaten,
result);
475 IParseDisplayName_Release(
parser);
486 TRACE(
"(%p,%p)\n",iface,pwdMksys);
491 *pwdMksys = MKSYS_CLASSMONIKER;
506 return IMoniker_QueryInterface(&
This->IMoniker_iface,
riid, ppvObject);
516 TRACE(
"(%p)\n",iface);
518 return IMoniker_AddRef(&
This->IMoniker_iface);
528 TRACE(
"(%p)\n",iface);
530 return IMoniker_Release(&
This->IMoniker_iface);
543 TRACE(
"%p, %p, %lu, %p.\n", iface, pbData, cbMax,
pcbData);
550 memcpy(pbData, &CLSID_ClassMoniker,
sizeof(
CLSID));
599 if (!(
object =
calloc(1,
sizeof(*
object))))
605 object->header.clsid = *
clsid;
608 object->header.data_len = (data_len + 1) *
sizeof(
WCHAR);
612 IMoniker_Release(&
object->IMoniker_iface);
616 object->data[data_len] = 0;
658 if ((has_braces = *
s ==
'{'))
s++;
665 WARN(
"Failed to parse clsid string.\n");
682 *eaten =
end - display_name;
702 hr = IMoniker_QueryInterface(pmk,
riid,
ppv);
703 IMoniker_Release(pmk);
BOOL is_anti_moniker(IMoniker *iface, DWORD *order)
HRESULT WINAPI CreateAntiMoniker(IMoniker **moniker)
#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_Save(IMoniker *iface, IStream *stream, BOOL clear_dirty)
static ClassMoniker * unsafe_impl_from_IMoniker(IMoniker *iface)
static HRESULT WINAPI ClassMoniker_QueryInterface(IMoniker *iface, REFIID riid, void **ppvObject)
static ULONG WINAPI ClassMoniker_AddRef(IMoniker *iface)
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 HRESULT WINAPI ClassMoniker_Hash(IMoniker *iface, DWORD *hash)
static ULONG WINAPI ClassMoniker_Release(IMoniker *iface)
HRESULT ClassMoniker_CreateFromDisplayName(LPBC pbc, const WCHAR *display_name, DWORD *eaten, IMoniker **moniker)
static ULONG WINAPI ClassMonikerROTData_Release(IROTData *iface)
static HRESULT WINAPI ClassMonikerROTData_GetComparisonData(IROTData *iface, BYTE *pbData, ULONG cbMax, ULONG *pcbData)
static HRESULT WINAPI ClassMoniker_GetDisplayName(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, LPOLESTR *name)
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 HRESULT WINAPI ClassMoniker_GetSizeMax(IMoniker *iface, ULARGE_INTEGER *size)
static HRESULT WINAPI ClassMoniker_IsEqual(IMoniker *iface, IMoniker *other)
static const IROTDataVtbl ROTDataVtbl
static HRESULT WINAPI ClassMoniker_ComposeWith(IMoniker *iface, IMoniker *right, BOOL only_if_not_generic, IMoniker **result)
static HRESULT WINAPI ClassMoniker_GetClassID(IMoniker *iface, CLSID *pClassID)
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_CommonPrefixWith(IMoniker *iface, IMoniker *other, IMoniker **prefix)
static HRESULT create_class_moniker(const CLSID *clsid, const WCHAR *data, unsigned int data_len, IMoniker **moniker)
static HRESULT WINAPI ClassMoniker_ParseDisplayName(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, LPOLESTR display_name, ULONG *eaten, IMoniker **result)
static const IMonikerVtbl ClassMonikerVtbl
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_Load(IMoniker *iface, IStream *stream)
HRESULT WINAPI CreateClassMoniker(REFCLSID rclsid, IMoniker **moniker)
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 *left, IMoniker *right, IMoniker **composite)
HRESULT WINAPI DECLSPEC_HOTPATCH CoGetClassObject(REFCLSID rclsid, DWORD clscontext, COSERVERINFO *server_info, REFIID riid, void **obj)
HRESULT MonikerMarshal_Create(IMoniker *inner, IUnknown **outer)
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLuint GLsizei GLsizei * length
GLuint GLdouble GLdouble GLint GLint order
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
void *WINAPI CoTaskMemAlloc(SIZE_T size)
#define memcpy(s1, s2, n)
interface IBindCtx * LPBC
const GUID IID_IParseDisplayName
const GUID IID_IPersistStream
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
_In_ _Out_writes_opt_ pcchValueName _Inout_opt_ LPDWORD _Out_opt_ _Out_writes_bytes_to_opt_ pcbData _Inout_opt_ LPDWORD pcbData
RPC_STATUS WINAPI UuidFromStringW(RPC_WSTR s, UUID *uuid)
struct ClassMoniker::@543 header
Character const *const prefix
#define CONTAINING_RECORD(address, type, field)
#define MK_S_REDUCED_TO_SELF
#define CLASS_E_NOAGGREGATION