static HRESULT WINAPI ITSSCF_LockServer(LPCLASSFACTORY iface, BOOL dolock) { TRACE("(%p)->(%d)\n", iface, dolock); if (dolock) ITSS_LockModule(); else ITSS_UnlockModule(); return S_OK; }
static IEnumSTATSTG_Impl *ITSS_create_enum( void ) { IEnumSTATSTG_Impl *stgenum; stgenum = HeapAlloc( GetProcessHeap(), 0, sizeof (IEnumSTATSTG_Impl) ); stgenum->IEnumSTATSTG_iface.lpVtbl = &IEnumSTATSTG_vtbl; stgenum->ref = 1; stgenum->first = NULL; stgenum->last = NULL; stgenum->current = NULL; ITSS_LockModule(); TRACE(" -> %p\n", stgenum ); return stgenum; }
static HRESULT ITSS_create(IUnknown *pUnkOuter, LPVOID *ppObj) { ITStorageImpl *its; if( pUnkOuter ) return CLASS_E_NOAGGREGATION; its = HeapAlloc( GetProcessHeap(), 0, sizeof(ITStorageImpl) ); its->IITStorage_iface.lpVtbl = &ITStorageImpl_Vtbl; its->ref = 1; TRACE("-> %p\n", its); *ppObj = its; ITSS_LockModule(); return S_OK; }
HRESULT ITS_IParseDisplayName_create(IUnknown *pUnkOuter, LPVOID *ppObj) { ITS_IParseDisplayNameImpl *its; if( pUnkOuter ) return CLASS_E_NOAGGREGATION; its = HeapAlloc( GetProcessHeap(), 0, sizeof(ITS_IParseDisplayNameImpl) ); its->vtbl_ITS_IParseDisplayName = &ITS_IParseDisplayNameImpl_Vtbl; its->ref = 1; TRACE("-> %p\n", its); *ppObj = its; ITSS_LockModule(); return S_OK; }
HRESULT ITSProtocol_create(IUnknown *pUnkOuter, LPVOID *ppobj) { ITSProtocol *ret; TRACE("(%p %p)\n", pUnkOuter, ppobj); ITSS_LockModule(); ret = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(ITSProtocol)); ret->IInternetProtocol_iface.lpVtbl = &ITSProtocolVtbl; ret->IInternetProtocolInfo_iface.lpVtbl = &ITSProtocolInfoVtbl; ret->ref = 1; *ppobj = &ret->IInternetProtocol_iface; return S_OK; }
static IStream_Impl *ITSS_create_stream( ITSS_IStorageImpl *stg, struct chmUnitInfo *ui ) { IStream_Impl *stm; stm = HeapAlloc( GetProcessHeap(), 0, sizeof (IStream_Impl) ); stm->IStream_iface.lpVtbl = &ITSS_IStream_vtbl; stm->ref = 1; stm->addr = 0; stm->ui = *ui; stm->stg = stg; IStorage_AddRef( &stg->IStorage_iface ); ITSS_LockModule(); TRACE(" -> %p\n", stm ); return stm; }
static HRESULT ITSS_create_chm_storage( struct chmFile *chmfile, const WCHAR *dir, IStorage** ppstgOpen ) { ITSS_IStorageImpl *stg; TRACE("%p %s\n", chmfile, debugstr_w( dir ) ); stg = HeapAlloc( GetProcessHeap(), 0, FIELD_OFFSET( ITSS_IStorageImpl, dir[strlenW( dir ) + 1] )); stg->IStorage_iface.lpVtbl = &ITSS_IStorageImpl_Vtbl; stg->ref = 1; stg->chmfile = chmfile; strcpyW( stg->dir, dir ); *ppstgOpen = &stg->IStorage_iface; ITSS_LockModule(); return S_OK; }
static HRESULT ITS_IMoniker_create( IMoniker **ppObj, LPCWSTR name, DWORD n ) { ITS_IMonikerImpl *itsmon; DWORD sz; /* szFile[1] has space for one character already */ sz = sizeof(ITS_IMonikerImpl) + strlenW( name )*sizeof(WCHAR); itsmon = HeapAlloc( GetProcessHeap(), 0, sz ); itsmon->vtbl_ITS_IMoniker = &ITS_IMonikerImpl_Vtbl; itsmon->ref = 1; strcpyW( itsmon->szFile, name ); itsmon->szHtml = &itsmon->szFile[n]; while( *itsmon->szHtml == ':' ) *itsmon->szHtml++ = 0; TRACE("-> %p %s %s\n", itsmon, debugstr_w(itsmon->szFile), debugstr_w(itsmon->szHtml) ); *ppObj = (IMoniker*) itsmon; ITSS_LockModule(); return S_OK; }
static ULONG WINAPI ITSSCF_AddRef(LPCLASSFACTORY iface) { ITSS_LockModule(); return 2; }