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.

99 lines
2.6 KiB

  1. //***************************************************************************
  2. //
  3. // locator.h
  4. //
  5. // Copyright (c)1997-2001 Microsoft Corporation, All Rights Reserved
  6. //
  7. //***************************************************************************
  8. #ifndef _LOCATOR__H_
  9. #define _LOCATOR__H_
  10. #include <hmmsvc.h>
  11. typedef void** PPVOID;
  12. // This class is the class factory for CInstPro objects.
  13. template<class TProvider>
  14. class CLocatorFactory : public IClassFactory
  15. {
  16. protected:
  17. LONG m_cRef;
  18. public:
  19. CLocatorFactory(void);
  20. ~CLocatorFactory(void);
  21. //IUnknown members
  22. STDMETHODIMP QueryInterface(REFIID, PPVOID);
  23. STDMETHODIMP_(ULONG) AddRef(void);
  24. STDMETHODIMP_(ULONG) Release(void);
  25. //IClassFactory members
  26. STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID
  27. , PPVOID);
  28. STDMETHODIMP LockServer(BOOL);
  29. };
  30. #include "baseclsf.inl"
  31. template<class TProvider>
  32. class CProviderLocator : public IHmmLocator
  33. {
  34. protected:
  35. LONG m_cRef; //Object reference count
  36. public:
  37. CProviderLocator();
  38. ~CProviderLocator(void);
  39. //Non-delegating object IUnknown
  40. STDMETHODIMP QueryInterface(REFIID, PPVOID);
  41. STDMETHODIMP_(ULONG) AddRef(void);
  42. STDMETHODIMP_(ULONG) Release(void);
  43. STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo){return HMM_E_NOT_SUPPORTED;};
  44. STDMETHOD(GetTypeInfo)(
  45. THIS_
  46. UINT itinfo,
  47. LCID lcid,
  48. ITypeInfo FAR* FAR* pptinfo){return HMM_E_NOT_SUPPORTED;};
  49. STDMETHOD(GetIDsOfNames)(
  50. THIS_
  51. REFIID riid,
  52. OLECHAR FAR* FAR* rgszNames,
  53. UINT cNames,
  54. LCID lcid,
  55. DISPID FAR* rgdispid){return HMM_E_NOT_SUPPORTED;};
  56. STDMETHOD(Invoke)(
  57. THIS_
  58. DISPID dispidMember,
  59. REFIID riid,
  60. LCID lcid,
  61. WORD wFlags,
  62. DISPPARAMS FAR* pdispparams,
  63. VARIANT FAR* pvarResult,
  64. EXCEPINFO FAR* pexcepinfo,
  65. UINT FAR* puArgErr){return HMM_E_NOT_SUPPORTED;};
  66. /* IHmmLocator methods */
  67. STDMETHOD_(SCODE, ConnectServer)(THIS_ BSTR Server, BSTR User, BSTR Password, BSTR LocaleId, long lFlags, IHmmServices FAR* FAR* ppNamespace);
  68. };
  69. #include "baseloc.inl"
  70. void ObjectCreated();
  71. void ObjectDestroyed();
  72. void LockServer(BOOL bLock);
  73. void SetClassInfo(REFCLSID rclsid, IClassFactory* pFactory, char* szName,
  74. BOOL bFreeThreaded);
  75. void SetModuleHandle(HMODULE hModule);
  76. void DllInitialize();
  77. #endif