home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / common / msdev98 / template / atl / pdatasrc.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-06-16  |  2.5 KB  |  84 lines

  1. // [!DataSourceFile] : Declaration of the [!DataSource]
  2.  
  3. [!if=(FileExists, "FALSE")]
  4. #ifndef __[!DataSource]_H_
  5. #define __[!DataSource]_H_
  6.  
  7. #include "resource.h"       // main symbols
  8. #include "[!RowsetFile]"
  9. [!else]
  10. [!AddIncludeFile(TargetFile, "resource.h")]
  11. [!AddIncludeFile(TargetFile, RowsetFile)]
  12. [!endif]
  13. /////////////////////////////////////////////////////////////////////////////
  14. // CDataSource
  15. class ATL_NO_VTABLE [!DataSource] : 
  16. [!if=(ThreadingModel, "Single")]
  17.     public CComObjectRootEx<CComSingleThreadModel>,
  18. [!endif]
  19. [!if=(ThreadingModel, "Apartment")]
  20.     public CComObjectRootEx<CComSingleThreadModel>,
  21. [!endif]
  22. [!if=(ThreadingModel, "Both")]
  23.     public CComObjectRootEx<CComMultiThreadModel>,
  24. [!endif]
  25. [!if=(ThreadingModel, "Free")]
  26.     public CComObjectRootEx<CComMultiThreadModel>,
  27. [!endif]
  28.     public CComCoClass<[!DataSource], &CLSID_[!CoClassName]>,
  29.     public IDBCreateSessionImpl<[!DataSource], [!Session]>,
  30.     public IDBInitializeImpl<[!DataSource]>,
  31.     public IDBPropertiesImpl<[!DataSource]>,
  32.     public IPersistImpl<[!DataSource]>,
  33.     public IInternalConnectionImpl<[!DataSource]>
  34. {
  35. public:
  36.     HRESULT FinalConstruct()
  37.     {
  38.         return FInit();
  39.     }
  40.  
  41. DECLARE_REGISTRY_RESOURCEID([!IDR_REGISTRYID])
  42. BEGIN_PROPSET_MAP([!DataSource])
  43.     BEGIN_PROPERTY_SET(DBPROPSET_DATASOURCEINFO)
  44.         PROPERTY_INFO_ENTRY(ACTIVESESSIONS)
  45.         PROPERTY_INFO_ENTRY(DATASOURCEREADONLY)
  46.         PROPERTY_INFO_ENTRY(BYREFACCESSORS)
  47.         PROPERTY_INFO_ENTRY(OUTPUTPARAMETERAVAILABILITY)
  48.         PROPERTY_INFO_ENTRY(PROVIDEROLEDBVER)
  49.         PROPERTY_INFO_ENTRY(DSOTHREADMODEL)
  50.         PROPERTY_INFO_ENTRY(SUPPORTEDTXNISOLEVELS)
  51.         PROPERTY_INFO_ENTRY(USERNAME)
  52.     END_PROPERTY_SET(DBPROPSET_DATASOURCEINFO)
  53.     BEGIN_PROPERTY_SET(DBPROPSET_DBINIT)
  54.         PROPERTY_INFO_ENTRY(AUTH_PASSWORD)
  55.         PROPERTY_INFO_ENTRY(AUTH_PERSIST_SENSITIVE_AUTHINFO)
  56.         PROPERTY_INFO_ENTRY(AUTH_USERID)
  57.         PROPERTY_INFO_ENTRY(INIT_DATASOURCE)
  58.         PROPERTY_INFO_ENTRY(INIT_HWND)
  59.         PROPERTY_INFO_ENTRY(INIT_LCID)
  60.         PROPERTY_INFO_ENTRY(INIT_LOCATION)
  61.         PROPERTY_INFO_ENTRY(INIT_MODE)
  62.         PROPERTY_INFO_ENTRY(INIT_PROMPT)
  63.         PROPERTY_INFO_ENTRY(INIT_PROVIDERSTRING)
  64.         PROPERTY_INFO_ENTRY(INIT_TIMEOUT)
  65.     END_PROPERTY_SET(DBPROPSET_DBINIT)
  66.     CHAIN_PROPERTY_SET([!Command])
  67. END_PROPSET_MAP()
  68.  
  69. BEGIN_COM_MAP([!DataSource])
  70.     COM_INTERFACE_ENTRY(IDBCreateSession)
  71.     COM_INTERFACE_ENTRY(IDBInitialize)
  72.     COM_INTERFACE_ENTRY(IDBProperties)
  73.     COM_INTERFACE_ENTRY(IPersist)
  74.     COM_INTERFACE_ENTRY(IInternalConnection)
  75. END_COM_MAP()
  76.  
  77. public:
  78. };
  79.  
  80. [!if=(FileExists, "FALSE")]
  81. #endif //__[!DataSource]_H_
  82. [!endif]
  83.  
  84.