100 lines
2.6 KiB
C
100 lines
2.6 KiB
C
|
//***************************************************************************
|
||
|
//
|
||
|
// locator.h
|
||
|
//
|
||
|
// Copyright (c)1997-2001 Microsoft Corporation, All Rights Reserved
|
||
|
//
|
||
|
//***************************************************************************
|
||
|
|
||
|
#ifndef _LOCATOR__H_
|
||
|
#define _LOCATOR__H_
|
||
|
|
||
|
#include <hmmsvc.h>
|
||
|
|
||
|
typedef void** PPVOID;
|
||
|
|
||
|
// This class is the class factory for CInstPro objects.
|
||
|
|
||
|
template<class TProvider>
|
||
|
class CLocatorFactory : public IClassFactory
|
||
|
{
|
||
|
protected:
|
||
|
LONG m_cRef;
|
||
|
|
||
|
public:
|
||
|
CLocatorFactory(void);
|
||
|
~CLocatorFactory(void);
|
||
|
|
||
|
//IUnknown members
|
||
|
STDMETHODIMP QueryInterface(REFIID, PPVOID);
|
||
|
STDMETHODIMP_(ULONG) AddRef(void);
|
||
|
STDMETHODIMP_(ULONG) Release(void);
|
||
|
|
||
|
//IClassFactory members
|
||
|
STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID
|
||
|
, PPVOID);
|
||
|
STDMETHODIMP LockServer(BOOL);
|
||
|
};
|
||
|
|
||
|
#include "baseclsf.inl"
|
||
|
|
||
|
template<class TProvider>
|
||
|
class CProviderLocator : public IHmmLocator
|
||
|
{
|
||
|
protected:
|
||
|
LONG m_cRef; //Object reference count
|
||
|
|
||
|
public:
|
||
|
CProviderLocator();
|
||
|
~CProviderLocator(void);
|
||
|
|
||
|
//Non-delegating object IUnknown
|
||
|
STDMETHODIMP QueryInterface(REFIID, PPVOID);
|
||
|
STDMETHODIMP_(ULONG) AddRef(void);
|
||
|
STDMETHODIMP_(ULONG) Release(void);
|
||
|
|
||
|
STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo){return HMM_E_NOT_SUPPORTED;};
|
||
|
|
||
|
STDMETHOD(GetTypeInfo)(
|
||
|
THIS_
|
||
|
UINT itinfo,
|
||
|
LCID lcid,
|
||
|
ITypeInfo FAR* FAR* pptinfo){return HMM_E_NOT_SUPPORTED;};
|
||
|
|
||
|
STDMETHOD(GetIDsOfNames)(
|
||
|
THIS_
|
||
|
REFIID riid,
|
||
|
OLECHAR FAR* FAR* rgszNames,
|
||
|
UINT cNames,
|
||
|
LCID lcid,
|
||
|
DISPID FAR* rgdispid){return HMM_E_NOT_SUPPORTED;};
|
||
|
|
||
|
STDMETHOD(Invoke)(
|
||
|
THIS_
|
||
|
DISPID dispidMember,
|
||
|
REFIID riid,
|
||
|
LCID lcid,
|
||
|
WORD wFlags,
|
||
|
DISPPARAMS FAR* pdispparams,
|
||
|
VARIANT FAR* pvarResult,
|
||
|
EXCEPINFO FAR* pexcepinfo,
|
||
|
UINT FAR* puArgErr){return HMM_E_NOT_SUPPORTED;};
|
||
|
|
||
|
/* IHmmLocator methods */
|
||
|
STDMETHOD_(SCODE, ConnectServer)(THIS_ BSTR Server, BSTR User, BSTR Password, BSTR LocaleId, long lFlags, IHmmServices FAR* FAR* ppNamespace);
|
||
|
|
||
|
};
|
||
|
|
||
|
#include "baseloc.inl"
|
||
|
|
||
|
void ObjectCreated();
|
||
|
void ObjectDestroyed();
|
||
|
void LockServer(BOOL bLock);
|
||
|
|
||
|
void SetClassInfo(REFCLSID rclsid, IClassFactory* pFactory, char* szName,
|
||
|
BOOL bFreeThreaded);
|
||
|
void SetModuleHandle(HMODULE hModule);
|
||
|
void DllInitialize();
|
||
|
|
||
|
#endif
|