24 #include "wine/list.h" 60 IUnknown_AddRef((
IUnknown*)(*ppvObj));
71 TRACE(
"(%p)->(count=%u)\n",
This, refCount - 1);
90 IHlink_Release(
link->link);
101 static const WCHAR szIdent[] = {
'W',
'I',
'N',
'E',
'H',
'L',
'I',
'N',
'K',0};
120 IRunningObjectTable_Register(ROT, 0, piunk, composite, pdwRegister);
122 IRunningObjectTable_Release(ROT);
123 IMoniker_Release(composite);
124 IMoniker_Release(mon);
138 TRACE(
"(%p)->(%p, %d, %p)\n",
This, pimk, fBindifRootRegistered, ppiunk);
145 hr = IRunningObjectTable_GetObject(ROT, composite, ppiunk);
147 IRunningObjectTable_Release(ROT);
148 IMoniker_Release(composite);
149 IMoniker_Release(mon);
164 r = IRunningObjectTable_Revoke(ROT, dwRegister);
165 IRunningObjectTable_Release(ROT);
181 memcpy(
This->BrowseWindowInfo, phlbwi, phlbwi->cbSize);
195 if(!
This->BrowseWindowInfo)
198 memcpy(phlbwi,
This->BrowseWindowInfo,
This->BrowseWindowInfo->cbSize);
218 0,
NULL, &IID_IHlink, (
void**)&
link->link);
227 pwzFriendlyName,
ULONG *puHLID)
231 FIXME(
"(%p)->(%i %p %s %s %p)\n",
This, grfHLNF, pmkTarget,
252 case HLID_STACKBOTTOM:
259 WARN(
"unknown id 0x%x\n", hlid);
283 IHlink_Release(
entry->link);
349 static const IHlinkBrowseContextVtbl
hlvt =
static struct link_entry * context_get_entry(HlinkBCImpl *ctxt, ULONG hlid)
static HRESULT WINAPI IHlinkBC_SetInitialHlink(IHlinkBrowseContext *iface, IMoniker *pimkTarget, LPCWSTR pwzLocation, LPCWSTR pwzFriendlyName)
__WINE_SERVER_LIST_INLINE struct list * list_prev(const struct list *list, const struct list *elem)
GLdouble GLdouble GLdouble r
static HRESULT WINAPI IHlinkBC_fnQueryInterface(IHlinkBrowseContext *iface, REFIID riid, LPVOID *ppvObj)
__WINE_SERVER_LIST_INLINE void list_add_head(struct list *list, struct list *elem)
static HRESULT WINAPI IHlinkBC_UpdateHlink(IHlinkBrowseContext *iface, ULONG hlid, IMoniker *target, LPCWSTR location, LPCWSTR friendly_name)
WINE_DEFAULT_DEBUG_CHANNEL(hlink)
static HRESULT WINAPI IHlinkBC_EnumNavigationStack(IHlinkBrowseContext *iface, DWORD dwReserved, DWORD grfHLFNAMEF, IEnumHLITEM **ppienumhlitem)
__WINE_SERVER_LIST_INLINE struct list * list_tail(const struct list *list)
static void * heap_alloc(size_t len)
__WINE_SERVER_LIST_INLINE struct list * list_head(const struct list *list)
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
HRESULT WINAPI CreateItemMoniker(LPCOLESTR lpszDelim, LPCOLESTR lpszItem, IMoniker **ppmk)
static HRESULT WINAPI IHlinkBC_SetBrowseWindowInfo(IHlinkBrowseContext *iface, HLBWINFO *phlbwi)
static HRESULT WINAPI IHlinkBC_GetObject(IHlinkBrowseContext *iface, IMoniker *pimk, BOOL fBindifRootRegistered, IUnknown **ppiunk)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
static ULONG WINAPI IHlinkBC_fnAddRef(IHlinkBrowseContext *iface)
#define CO_E_ALREADYINITIALIZED
static HRESULT WINAPI IHlinkBC_GetBrowseWindowInfo(IHlinkBrowseContext *iface, HLBWINFO *phlbwi)
static HRESULT WINAPI IHlinkBC_Clone(IHlinkBrowseContext *iface, IUnknown *piunkOuter, REFIID riid, IUnknown **ppiunkOjb)
struct link_entry * current
static HRESULT WINAPI IHlinkBC_Revoke(IHlinkBrowseContext *iface, DWORD dwRegister)
static HRESULT WINAPI IHlinkBC_GetHlink(IHlinkBrowseContext *iface, ULONG hlid, IHlink **ret)
HRESULT HLinkBrowseContext_Constructor(IUnknown *pUnkOuter, REFIID riid, void **ppv)
#define InterlockedDecrement
IHlinkBrowseContext IHlinkBrowseContext_iface
#define memcpy(s1, s2, n)
static ULONG WINAPI IHlinkBC_fnRelease(IHlinkBrowseContext *iface)
#define CLASS_E_NOAGGREGATION
static HRESULT WINAPI IHlinkBC_QueryHlink(IHlinkBrowseContext *iface, DWORD grfHLONG, ULONG uHLID)
static const IHlinkBrowseContextVtbl hlvt
__WINE_SERVER_LIST_INLINE int list_empty(const struct list *list)
static HRESULT WINAPI IHlinkBC_SetCurrentHlink(IHlinkBrowseContext *iface, ULONG hlid)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
#define InterlockedIncrement
static HlinkBCImpl * impl_from_IHlinkBrowseContext(IHlinkBrowseContext *iface)
static const WCHAR friendly_name[]
HRESULT WINAPI GetRunningObjectTable(DWORD reserved, LPRUNNINGOBJECTTABLE *pprot)
HRESULT WINAPI HlinkCreateFromMoniker(IMoniker *pimkTrgt, LPCWSTR pwzLocation, LPCWSTR pwzFriendlyName, IHlinkSite *pihlsite, DWORD dwSiteData, IUnknown *piunkOuter, REFIID riid, void **ppvObj)
__WINE_SERVER_LIST_INLINE struct list * list_next(const struct list *list, const struct list *elem)
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
HLBWINFO * BrowseWindowInfo
HRESULT WINAPI CreateGenericComposite(IMoniker *pmkFirst, IMoniker *pmkRest, IMoniker **ppmkComposite)
static HRESULT WINAPI IHlinkBC_OnNavigateHlink(IHlinkBrowseContext *iface, DWORD grfHLNF, IMoniker *pmkTarget, LPCWSTR pwzLocation, LPCWSTR pwzFriendlyName, ULONG *puHLID)
static HRESULT WINAPI IHlinkBC_Close(IHlinkBrowseContext *iface, DWORD reserved)
static const WCHAR szIdent[]
#define IsEqualIID(riid1, riid2)
static HRESULT WINAPI IHlinkBC_Register(IHlinkBrowseContext *iface, DWORD dwReserved, IUnknown *piunk, IMoniker *pimk, DWORD *pdwRegister)
static BOOL heap_free(void *mem)