Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

75 lines
1.7 KiB

// MSAAClientAdapter.h : Declaration of the CAccClientDocMgr
#ifndef __MSAACLIENTADAPTER_H_
#define __MSAACLIENTADAPTER_H_
#include "resource.h" // main symbols
/////////////////////////////////////////////////////////////////////////////
// CAccClientDocMgr
class ATL_NO_VTABLE CAccClientDocMgr :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CAccClientDocMgr, &CLSID_AccClientDocMgr>,
public IAccClientDocMgr
{
public:
CAccClientDocMgr();
~CAccClientDocMgr();
DECLARE_REGISTRY_RESOURCEID(IDR_ACCCLIENTDOCMGR)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(CAccClientDocMgr)
COM_INTERFACE_ENTRY(IAccClientDocMgr)
END_COM_MAP()
HRESULT FinalConstruct()
{
bool fInit = false;
HANDLE hInit = OpenEvent( SYNCHRONIZE, FALSE, TEXT("MSAA_STORE_EVENT") );
if ( hInit )
{
fInit = true;
CloseHandle( hInit );
}
HRESULT hr = CoCreateInstance( CLSID_AccStore, NULL, CLSCTX_LOCAL_SERVER, IID_IAccStore, (void **) & m_pAccStore );
// if this Event does not exist then the store is being created for the first time
// so lets wait a little bit to let the store settle down.
if ( !hInit )
Sleep (500);
return hr;
}
// IAccClientDocMgr
public:
HRESULT STDMETHODCALLTYPE GetDocuments (
IEnumUnknown ** enumUnknown
);
HRESULT STDMETHODCALLTYPE LookupByHWND (
HWND hWnd,
REFIID riid,
IUnknown ** ppunk
);
HRESULT STDMETHODCALLTYPE LookupByPoint (
POINT pt,
REFIID riid,
IUnknown ** ppunk
);
HRESULT STDMETHODCALLTYPE GetFocused (
REFIID riid,
IUnknown ** ppunk
);
private:
IAccStore * m_pAccStore;
};
#endif //__MSAACLIENTADAPTER_H_