home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / Atl / bcbatllib.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2000-02-01  |  7.5 KB  |  213 lines

  1. /* This file contains various data and code extracted from the ATL 3.0 headers
  2.    in order to allow them to be precompiled. An explanation of each extraction
  3.    is included as appropriate. */
  4.  
  5. #ifndef __BCBATLLIB__
  6. #define __BCBATLLIB__
  7.  
  8. #pragma option push -w-inl
  9. #pragma option push -w-aus
  10.  
  11. #include <utilcls.h>
  12. #include <atl\atlmod.h>
  13. #include <atl\atlbase.h>
  14. #include <atl\atlwin.h>
  15. #include <atl\atlcom.h>
  16. #include <atl\atlhost.h>
  17. #include <atl\atlsnap.h>
  18. #include <atl\statreg.h>
  19.  
  20.  
  21. // From AtlBase.H:
  22.  
  23. /* GUIDS and other static data declared via declspec(__selectany), which is not
  24.    supported in precompiled headers. */
  25.  
  26. const GUID LIBID_ATLLib = {0x44EC0535,0x400F,0x11D0,{0x9D,0xCD,0x00,0xA0,0xC9,0x03,0x91,0xD3}};
  27. const CLSID CLSID_Registrar = {0x44EC053A,0x400F,0x11D0,{0x9D,0xCD,0x00,0xA0,0xC9,0x03,0x91,0xD3}};
  28. const IID IID_IRegistrar = {0x44EC053B,0x400F,0x11D0,{0x9D,0xCD,0x00,0xA0,0xC9,0x03,0x91,0xD3}};
  29. const IID IID_IAxWinHostWindow = {0xb6ea2050,0x48a,0x11d1,{0x82,0xb9,0x0,0xc0,0x4f,0xb9,0x94,0x2e}};
  30. const IID IID_IAxWinAmbientDispatch = {0xb6ea2051,0x48a,0x11d1,{0x82,0xb9,0x0,0xc0,0x4f,0xb9,0x94,0x2e}};
  31. const IID IID_IInternalConnection = {0x72AD0770,0x6A9F,0x11d1,{0xBC,0xEC,0x00,0x60,0x08,0x8F,0x44,0x4E}};
  32. const IID IID_IDocHostUIHandlerDispatch = {0x425B5AF0,0x65F1,0x11d1,{0x96,0x11,0x00,0x00,0xF8,0x1E,0x0D,0x0D}};
  33.  
  34. extern "C" GUID GUID_ATLVer30 = { 0xb62f5910, 0x6528, 0x11d1, { 0x96, 0x11, 0x0, 0x0, 0xf8, 0x1e, 0xd, 0xd } };
  35.  
  36. UINT CComApartment::ATL_CREATE_OBJECT = 0;
  37.  
  38. /* Global function declared and implemented; implementation moved here. */
  39.  
  40. static HRESULT AtlSetChildSite(IUnknown* punkChild, IUnknown* punkParent)
  41. {
  42.     if (punkChild == NULL)
  43.         return E_POINTER;
  44.  
  45.     HRESULT hr;
  46.     IObjectWithSite* pChildSite = NULL;
  47.     hr = punkChild->QueryInterface(IID_IObjectWithSite, (void**)&pChildSite);
  48.     if (SUCCEEDED(hr) && pChildSite != NULL)
  49.     {
  50.         hr = pChildSite->SetSite(punkParent);
  51.         pChildSite->Release();
  52.     }
  53.     return hr;
  54. }
  55.  
  56. namespace ATL {
  57.  
  58. /* Static data initialized within the ATL namespace. */
  59.  
  60. CComModule* _pModule = NULL;
  61. GUID CComModule::m_libid = {0x0,0x0,0x0,{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}};
  62.  
  63. /* Namespace-global function implemented in the header */
  64.  
  65. UINT WINAPI AtlGetDirLen(LPCOLESTR lpszPathName)
  66. {
  67.     ATLASSERT(lpszPathName != NULL);
  68.  
  69.     // always capture the complete file name including extension (if present)
  70.     LPCOLESTR lpszTemp = lpszPathName;
  71.     for (LPCOLESTR lpsz = lpszPathName; *lpsz != NULL; )
  72.     {
  73.         LPCOLESTR lp = CharNextO(lpsz);
  74.         // remember last directory/drive separator
  75.         if (*lpsz == OLESTR('\\') || *lpsz == OLESTR('/') || *lpsz == OLESTR(':'))
  76.             lpszTemp = lp;
  77.         lpsz = lp;
  78.     }
  79.  
  80.     return lpszTemp-lpszPathName;
  81. }
  82.  
  83. }
  84. //----------------------------------------------------------------------------//
  85. // From AtlHost.H:
  86.  
  87. /* Static data initialized in the header, inside the ATL namespace. */
  88.  
  89. namespace ATL {
  90. UINT WM_ATLGETHOST = 0;
  91. UINT WM_ATLGETCONTROL = 0;
  92. }
  93.  
  94. //----------------------------------------------------------------------------//
  95. // From AtlSnap.H
  96.  
  97. /* Static data initialized in the header. */
  98.  
  99. CLIPFORMAT CSnapInItem::m_CCF_NODETYPE = 0;
  100. CLIPFORMAT CSnapInItem::m_CCF_SZNODETYPE = 0;
  101. CLIPFORMAT CSnapInItem::m_CCF_DISPLAY_NAME = 0;
  102. CLIPFORMAT CSnapInItem::m_CCF_SNAPIN_CLASSID = 0;
  103. CLIPFORMAT CSnapInItem::m_CCF_SNAPIN_GETOBJECTDATA = 0;
  104. CLIPFORMAT CSnapInItem::m_CCF_MMC_MULTISELECT_DATAOBJECT = 0;
  105.  
  106. //----------------------------------------------------------------------------//
  107. // From AtlWin.H
  108.  
  109. /* Static data initialized in the header. */
  110.  
  111. RECT CWindow::rcDefault = { CW_USEDEFAULT, CW_USEDEFAULT, 0, 0 };
  112.  
  113. //----------------------------------------------------------------------------//
  114. // From AtlCom.H
  115.  
  116. namespace ATL {
  117.  
  118. /* Methods of CComDispatchDriver which initialize static data based upon
  119.    values passed as in parameters. The initialization prevents them from
  120.    precompiling. */
  121.  
  122. HRESULT CComDispatchDriver::Invoke0(DISPID dispid, VARIANT* pvarRet)
  123.     {
  124.         DISPPARAMS dispparams = { NULL, NULL, 0, 0};
  125.         return p->Invoke(dispid, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &dispparams, pvarRet, NULL, NULL);
  126.     }
  127.  
  128. HRESULT CComDispatchDriver::Invoke1(DISPID dispid, VARIANT* pvarParam1, VARIANT* pvarRet)
  129.     {
  130.         DISPPARAMS dispparams = { pvarParam1, NULL, 1, 0};
  131.         return p->Invoke(dispid, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &dispparams, pvarRet, NULL, NULL);
  132.     }
  133.  
  134. HRESULT CComDispatchDriver::Invoke2(DISPID dispid, VARIANT* pvarParam1, VARIANT* pvarParam2, VARIANT* pvarRet)
  135.     {
  136.         CComVariant varArgs[2] = { *pvarParam2, *pvarParam1 };
  137.         DISPPARAMS dispparams = { &varArgs[0], NULL, 2, 0};
  138.         return p->Invoke(dispid, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &dispparams, pvarRet, NULL, NULL);
  139.     }
  140.  
  141. HRESULT CComDispatchDriver::InvokeN(DISPID dispid, VARIANT* pvarParams, int nParams, VARIANT* pvarRet)
  142.     {
  143.         DISPPARAMS dispparams = { pvarParams, NULL, nParams, 0};
  144.         return p->Invoke(dispid, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &dispparams, pvarRet, NULL, NULL);
  145.     }
  146.  
  147. HRESULT CComDispatchDriver::GetProperty(IDispatch* pDisp, DISPID dwDispID, VARIANT* pVar)
  148.     {
  149.         ATLTRACE2(atlTraceCOM, 0, _T("CPropertyHelper::GetProperty\n"));
  150.         DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};
  151.         return pDisp->Invoke(dwDispID, IID_NULL,
  152.                 LOCALE_USER_DEFAULT, DISPATCH_PROPERTYGET,
  153.                 &dispparamsNoArgs, pVar, NULL, NULL);
  154.     }
  155.  
  156. HRESULT CComDispatchDriver::PutProperty(IDispatch* pDisp, DISPID dwDispID, VARIANT* pVar)
  157.     {
  158.         ATLTRACE2(atlTraceCOM, 0, _T("CPropertyHelper::PutProperty\n"));
  159.         DISPPARAMS dispparams = {NULL, NULL, 1, 1};
  160.         dispparams.rgvarg = pVar;
  161.         DISPID dispidPut = DISPID_PROPERTYPUT;
  162.         dispparams.rgdispidNamedArgs = &dispidPut;
  163.  
  164.         if (pVar->vt == VT_UNKNOWN || pVar->vt == VT_DISPATCH ||
  165.             (pVar->vt & VT_ARRAY) || (pVar->vt & VT_BYREF))
  166.         {
  167.             HRESULT hr = pDisp->Invoke(dwDispID, IID_NULL,
  168.                 LOCALE_USER_DEFAULT, DISPATCH_PROPERTYPUTREF,
  169.                 &dispparams, NULL, NULL, NULL);
  170.             if (SUCCEEDED(hr))
  171.                 return hr;
  172.         }
  173.  
  174.         return pDisp->Invoke(dwDispID, IID_NULL,
  175.                 LOCALE_USER_DEFAULT, DISPATCH_PROPERTYPUT,
  176.                 &dispparams, NULL, NULL, NULL);
  177.     }
  178.  
  179.         /* Implementations of methods and some static data initialization
  180.            are performed by BEGIN_COM_MAP and END_COM_MAP. They have been
  181.            broken into: BEGIN_HEADER_COM_MAP and BEGIN_IMPL_COM_MAP, and
  182.            END_HEADER_COM_MAP and END_IMPL_COM_MAP. The _HEADER_ versions
  183.            declare methods and data, and the _IMPL_ versions implement
  184.            the methods and initialize the data. COM_IMPL_INTERFACE_ENTRY
  185.            is a version of COM_INTERFACE_ENTRY which does not require
  186.            a typedef to have been declared in the enclosing scope. */
  187.  
  188.         BEGIN_IMPL_COM_MAP(CComClassFactory, CComClassFactory)
  189.                COM_IMPL_INTERFACE_ENTRY(IClassFactory, CComClassFactory)
  190.         END_IMPL_COM_MAP()
  191.  
  192.         BEGIN_IMPL_COM_MAP(CComClassFactoryAutoThread,CComClassFactoryAutoThread)
  193.                 COM_IMPL_INTERFACE_ENTRY(IClassFactory, CComClassFactoryAutoThread)
  194.         END_IMPL_COM_MAP()
  195. }
  196. //----------------------------------------------------------------------------//
  197. // From StatReg.H
  198.  
  199. /* Initialized data, mostly declared via declspec(__selectany) */
  200.  
  201. LPCTSTR CRegParser::rgszNeverDelete[] =
  202. {
  203.     _T("CLSID"), _T("TYPELIB")
  204. }; //Component Catagories
  205.  
  206. const int CRegParser::cbNeverDelete = sizeof(rgszNeverDelete) / sizeof(LPCTSTR*);
  207. const int CRegParser::MAX_VALUE=4096;
  208. const int CRegParser::MAX_TYPE=MAX_VALUE;
  209.  
  210. #pragma option pop
  211. #pragma option pop
  212. #endif
  213.