26#define NONAMELESSUNION
96 IMoniker_AddRef(iface);
135 TRACE(
"(%p,%p)\n",iface,pClassID);
140 *pClassID = CLSID_ItemMoniker;
154 TRACE(
"(%p)\n",iface);
166 DWORD delimiterLength,nameLength,lenW;
167 CHAR *itemNameA,*itemDelimiterA;
175 res=IStream_Read(pStm,&delimiterLength,
sizeof(
DWORD),&bread);
176 if (bread !=
sizeof(
DWORD))
182 res=IStream_Read(pStm,itemDelimiterA,delimiterLength,&bread);
183 if (bread != delimiterLength)
191 if (!
This->itemDelimiter)
200 res=IStream_Read(pStm,&nameLength,
sizeof(
DWORD),&bread);
201 if (bread !=
sizeof(
DWORD))
207 res=IStream_Read(pStm,itemNameA,nameLength,&bread);
208 if (bread != nameLength)
234 CHAR *itemNameA,*itemDelimiterA;
248 TRACE(
"%p, %s\n", pStm, fClearDirty ?
"TRUE" :
"FALSE");
250 res=IStream_Write(pStm,&delimiterLength,
sizeof(
DWORD),
NULL);
251 res=IStream_Write(pStm,itemDelimiterA,delimiterLength *
sizeof(
CHAR),
NULL);
253 res=IStream_Write(pStm,itemNameA,nameLength *
sizeof(
CHAR),
NULL);
270 TRACE(
"(%p,%p)\n",iface,pcbSize);
277 pcbSize->
u.LowPart =
sizeof(
DWORD) +
282 pcbSize->
u.HighPart=0;
311 res=IMoniker_BindToObject(pmkToLeft,pbc,
NULL,&refid,(
void**)&poic);
315 res=IOleItemContainer_GetObject(poic,
This->itemName,BINDSPEED_MODERATE,pbc,
riid,ppvResult);
317 IOleItemContainer_Release(poic);
347 res=IOleItemContainer_GetObjectStorage(poic,
This->itemName,pbc,
riid,ppvResult);
349 IOleItemContainer_Release(poic);
360 DWORD dwReduceHowFar,
364 TRACE(
"(%p,%p,%d,%p,%p)\n",iface,pbc,dwReduceHowFar,ppmkToLeft,ppmkReduced);
366 if (ppmkReduced==
NULL)
380 BOOL fOnlyIfNotGeneric,
389 TRACE(
"(%p,%p,%d,%p)\n",iface,pmkRight,fOnlyIfNotGeneric,ppmkComposite);
391 if ((ppmkComposite==
NULL)||(pmkRight==
NULL))
396 IMoniker_IsSystemMoniker(pmkRight,&mkSys);
399 if(mkSys==MKSYS_ANTIMONIKER)
406 if(mkSys==MKSYS_GENERICCOMPOSITE){
408 res=IMoniker_Enum(pmkRight,
TRUE,&penumMk);
413 res=IEnumMoniker_Next(penumMk,1,&pmostLeftMk,
NULL);
415 IMoniker_IsSystemMoniker(pmostLeftMk,&mkSys2);
417 if(mkSys2==MKSYS_ANTIMONIKER){
419 IMoniker_Release(pmostLeftMk);
421 tempMkComposite=iface;
422 IMoniker_AddRef(iface);
424 while(IEnumMoniker_Next(penumMk,1,&pmostLeftMk,
NULL)==
S_OK){
428 IMoniker_Release(tempMkComposite);
429 IMoniker_Release(pmostLeftMk);
431 tempMkComposite=*ppmkComposite;
432 IMoniker_AddRef(tempMkComposite);
443 if (!fOnlyIfNotGeneric)
455 TRACE(
"(%p,%d,%p)\n",iface,fForward,ppenumMoniker);
457 if (ppenumMoniker ==
NULL)
460 *ppenumMoniker =
NULL;
476 TRACE(
"(%p,%p)\n",iface,pmkOtherMoniker);
478 if (!pmkOtherMoniker)
return S_FALSE;
515 for (
i =
len ;
i > 0;
i--)
536 TRACE(
"(%p,%p,%p,%p)\n",iface,pbc,pmkToLeft,pmkNewlyRunning);
541 if ((pmkNewlyRunning!=
NULL)&&(IMoniker_IsEqual(pmkNewlyRunning,iface)==
S_OK))
547 res=IBindCtx_GetRunningObjectTable(pbc,&
rot);
552 res = IRunningObjectTable_IsRunning(
rot,iface);
554 IRunningObjectTable_Release(
rot);
566 res=IOleItemContainer_IsRunning(poic,
This->itemName);
568 IOleItemContainer_Release(poic);
587 TRACE(
"(%p,%p,%p,%p)\n",iface,pbc,pmkToLeft,pItemTime);
606 res=IBindCtx_GetRunningObjectTable(pbc,&
rot);
608 IMoniker_Release(compositeMk);
612 if (IRunningObjectTable_GetTimeOfLastChange(
rot,compositeMk,pItemTime)!=
S_OK)
614 res=IMoniker_GetTimeOfLastChange(pmkToLeft,pbc,
NULL,pItemTime);
616 IMoniker_Release(compositeMk);
627 TRACE(
"(%p,%p)\n",iface,ppmk);
642 TRACE(
"(%p,%p)\n", pmkOther, ppmkPrefix);
644 IMoniker_IsSystemMoniker(pmkOther,&mkSys);
648 if((mkSys==MKSYS_ITEMMONIKER) && (IMoniker_IsEqual(iface,pmkOther)==
S_OK) ){
652 IMoniker_AddRef(iface);
667 TRACE(
"(%p,%p,%p)\n",iface,pmOther,ppmkRelPath);
669 if (ppmkRelPath==
NULL)
687 TRACE(
"(%p,%p,%p,%p)\n",iface,pbc,pmkToLeft,ppszDisplayName);
689 if (ppszDisplayName==
NULL)
692 if (pmkToLeft!=
NULL){
698 if (*ppszDisplayName==
NULL)
744 res=IParseDisplayName_ParseDisplayName(ppdn,pbc,
displayName,pchEaten,ppmkOut);
746 IOleItemContainer_Release(poic);
747 IParseDisplayName_Release(ppdn);
758 TRACE(
"(%p,%p)\n",iface,pwdMksys);
763 (*pwdMksys)=MKSYS_ITEMMONIKER;
789 TRACE(
"(%p)\n",iface);
801 TRACE(
"(%p)\n",iface);
830 *pszItemDelimiter = *
This->itemDelimiter;
832 pszItemName = pszItemDelimiter + 1;
885 int sizeStr1=
lstrlenW(lpszItem), sizeStr2;
886 static const OLECHAR emptystr[1];
903 FIXME(
"lpszDelim is NULL. Using empty string which is possibly wrong.\n");
905 delim = lpszDelim ? lpszDelim : emptystr;
909 if (!
This->itemDelimiter) {
924 if (
This->pMarshal) IUnknown_Release(
This->pMarshal);
HRESULT WINAPI CreateAntiMoniker(IMoniker **ppmk)
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
HRESULT WINAPI MonikerCommonPrefixWith(IMoniker *pmkThis, IMoniker *pmkOther, IMoniker **ppmkCommon)
HRESULT WINAPI CreateGenericComposite(IMoniker *pmkFirst, IMoniker *pmkRest, IMoniker **ppmkComposite)
#define HeapFree(x, y, z)
#define WideCharToMultiByte
#define MultiByteToWideChar
HRESULT MonikerMarshal_Create(IMoniker *inner, IUnknown **outer)
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
GLfloat GLfloat GLfloat GLfloat h
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)
static HRESULT ItemMonikerImpl_Destroy(ItemMonikerImpl *iface)
static HRESULT WINAPI ItemMonikerImpl_Enum(IMoniker *iface, BOOL fForward, IEnumMoniker **ppenumMoniker)
static HRESULT WINAPI ItemMonikerImpl_IsEqual(IMoniker *iface, IMoniker *pmkOtherMoniker)
static HRESULT WINAPI ItemMonikerImpl_Save(IMoniker *iface, IStream *pStm, BOOL fClearDirty)
static HRESULT ItemMonikerImpl_Construct(ItemMonikerImpl *This, LPCOLESTR lpszDelim, LPCOLESTR lpszItem)
HRESULT WINAPI CreateItemMoniker(LPCOLESTR lpszDelim, LPCOLESTR lpszItem, IMoniker **ppmk)
static HRESULT WINAPI ItemMonikerImpl_Inverse(IMoniker *iface, IMoniker **ppmk)
static ULONG WINAPI ItemMonikerROTDataImpl_Release(IROTData *iface)
static HRESULT WINAPI ItemMonikerImpl_ParseDisplayName(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, LPOLESTR pszDisplayName, ULONG *pchEaten, IMoniker **ppmkOut)
static HRESULT WINAPI ItemMonikerImpl_GetSizeMax(IMoniker *iface, ULARGE_INTEGER *pcbSize)
static HRESULT WINAPI ItemMonikerImpl_Reduce(IMoniker *iface, IBindCtx *pbc, DWORD dwReduceHowFar, IMoniker **ppmkToLeft, IMoniker **ppmkReduced)
static HRESULT WINAPI ItemMonikerImpl_GetDisplayName(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, LPOLESTR *ppszDisplayName)
static HRESULT WINAPI ItemMonikerROTDataImpl_GetComparisonData(IROTData *iface, BYTE *pbData, ULONG cbMax, ULONG *pcbData)
static HRESULT WINAPI ItemMonikerImpl_RelativePathTo(IMoniker *iface, IMoniker *pmOther, IMoniker **ppmkRelPath)
static HRESULT WINAPI ItemMonikerImpl_IsDirty(IMoniker *iface)
static HRESULT WINAPI ItemMonikerImpl_IsRunning(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, IMoniker *pmkNewlyRunning)
HRESULT WINAPI ItemMoniker_CreateInstance(IClassFactory *iface, IUnknown *pUnk, REFIID riid, void **ppv)
static HRESULT WINAPI ItemMonikerImpl_ComposeWith(IMoniker *iface, IMoniker *pmkRight, BOOL fOnlyIfNotGeneric, IMoniker **ppmkComposite)
static HRESULT WINAPI ItemMonikerImpl_Hash(IMoniker *iface, DWORD *pdwHash)
static HRESULT WINAPI ItemMonikerImpl_BindToObject(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, REFIID riid, VOID **ppvResult)
static const IROTDataVtbl VT_ROTDataImpl
static HRESULT WINAPI ItemMonikerImpl_GetTimeOfLastChange(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, FILETIME *pItemTime)
static HRESULT WINAPI ItemMonikerImpl_Load(IMoniker *iface, IStream *pStm)
static ItemMonikerImpl * impl_from_IROTData(IROTData *iface)
static ULONG WINAPI ItemMonikerImpl_Release(IMoniker *iface)
static ItemMonikerImpl * impl_from_IMoniker(IMoniker *iface)
static HRESULT WINAPI ItemMonikerImpl_CommonPrefixWith(IMoniker *iface, IMoniker *pmkOther, IMoniker **ppmkPrefix)
static const IMonikerVtbl VT_ItemMonikerImpl
static HRESULT WINAPI ItemMonikerImpl_GetClassID(IMoniker *iface, CLSID *pClassID)
static HRESULT WINAPI ItemMonikerImpl_IsSystemMoniker(IMoniker *iface, DWORD *pwdMksys)
static HRESULT WINAPI ItemMonikerImpl_QueryInterface(IMoniker *iface, REFIID riid, void **ppvObject)
static ULONG WINAPI ItemMonikerROTDataImpl_AddRef(IROTData *iface)
static ULONG WINAPI ItemMonikerImpl_AddRef(IMoniker *iface)
static HRESULT WINAPI ItemMonikerROTDataImpl_QueryInterface(IROTData *iface, REFIID riid, void **ppvObject)
static HRESULT WINAPI ItemMonikerImpl_BindToStorage(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, REFIID riid, VOID **ppvResult)
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
#define memcpy(s1, s2, n)
static const WCHAR wszEmpty[]
HRESULT WINAPI CreateBindCtx(DWORD reserved, LPBC *ppbc)
const GUID IID_IParseDisplayName
const GUID IID_IOleItemContainer
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)
struct _ULARGE_INTEGER::@4132 u
#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