home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / BC_502 / MFCINC.PAK / AFXOLE.INL < prev    next >
Encoding:
Text File  |  1997-05-06  |  16.2 KB  |  376 lines

  1. // This is a part of the Microsoft Foundation Classes C++ library.
  2. // Copyright (C) 1992-1995 Microsoft Corporation
  3. // All rights reserved.
  4. //
  5. // This source code is only intended as a supplement to the
  6. // Microsoft Foundation Classes Reference and related
  7. // electronic documentation provided with the library.
  8. // See these sources for detailed information regarding the
  9. // Microsoft Foundation Classes product.
  10.  
  11. // Inlines for AFXOLE.H
  12.  
  13. /////////////////////////////////////////////////////////////////////////////
  14. // General OLE inlines (CDocItem, COleDocument)
  15.  
  16. #ifdef _AFXOLE_INLINE
  17.  
  18. // CDocItem
  19. _AFXOLE_INLINE CDocument* CDocItem::GetDocument() const
  20.     { return m_pDocument; }
  21.  
  22. // COleDocument
  23. _AFXOLE_INLINE void COleDocument::EnableCompoundFile(BOOL bEnable)
  24.     { m_bCompoundFile = bEnable; }
  25.  
  26. // COleMessageFilter
  27. _AFXOLE_INLINE void COleMessageFilter::SetBusyReply(SERVERCALL nBusyReply)
  28.     { ASSERT_VALID(this); m_nBusyReply = nBusyReply; }
  29. _AFXOLE_INLINE void COleMessageFilter::SetRetryReply(DWORD nRetryReply)
  30.     { ASSERT_VALID(this); m_nRetryReply = nRetryReply; }
  31. _AFXOLE_INLINE void COleMessageFilter::SetMessagePendingDelay(DWORD nTimeout)
  32.     { ASSERT_VALID(this); m_nTimeout = nTimeout; }
  33. _AFXOLE_INLINE void COleMessageFilter::EnableBusyDialog(BOOL bEnable)
  34.     { ASSERT_VALID(this); m_bEnableBusy = bEnable; }
  35. _AFXOLE_INLINE void COleMessageFilter::EnableNotRespondingDialog(BOOL bEnable)
  36.     { ASSERT_VALID(this); m_bEnableNotResponding = bEnable; }
  37.  
  38. #endif //_AFXOLE_INLINE
  39.  
  40. /////////////////////////////////////////////////////////////////////////////
  41. // OLE automation inlines
  42.  
  43. #ifdef _AFXDISP_INLINE
  44.  
  45. // COleException
  46. _AFXDISP_INLINE COleException::COleException()
  47.     { m_sc = S_OK; }
  48. _AFXDISP_INLINE COleException::~COleException()
  49.     { }
  50.  
  51. // CCmdTarget
  52. _AFXDISP_INLINE DWORD CCmdTarget::InternalAddRef()
  53.     { ASSERT(GetInterfaceMap() != NULL); return InterlockedIncrement(&m_dwRef); }
  54.  
  55. // CObjectFactory
  56. _AFXDISP_INLINE BOOL COleObjectFactory::IsRegistered() const
  57.     { ASSERT_VALID(this); return m_dwRegister != 0; }
  58. _AFXDISP_INLINE REFCLSID COleObjectFactory::GetClassID() const
  59.     { ASSERT_VALID(this); return m_clsid; }
  60.  
  61. // COleDispatchDriver
  62. _AFXDISP_INLINE COleDispatchDriver::~COleDispatchDriver()
  63.     { ReleaseDispatch(); }
  64. _AFXDISP_INLINE COleDispatchDriver::operator LPDISPATCH()
  65.     { return m_lpDispatch; }
  66.  
  67. // COleVariant
  68. _AFXDISP_INLINE COleVariant::COleVariant()
  69.     { AfxVariantInit(this); }
  70. _AFXDISP_INLINE COleVariant::~COleVariant()
  71.     { VariantClear(this); }
  72. _AFXDISP_INLINE COleVariant::COleVariant(LPCTSTR lpszSrc)
  73.     { vt = VT_EMPTY; *this = lpszSrc; }
  74. _AFXDISP_INLINE COleVariant::COleVariant(CString& strSrc)
  75.     { vt = VT_EMPTY; *this = strSrc; }
  76. _AFXDISP_INLINE COleVariant::COleVariant(BYTE nSrc)
  77.     { vt = VT_UI1; bVal = nSrc; }
  78. _AFXDISP_INLINE COleVariant::COleVariant(const COleCurrency& curSrc)
  79.     { vt = VT_CY; cyVal = curSrc.m_cur; }
  80. _AFXDISP_INLINE COleVariant::COleVariant(float fltSrc)
  81.     { vt = VT_R4; fltVal = fltSrc; }
  82. _AFXDISP_INLINE COleVariant::COleVariant(double dblSrc)
  83.     { vt = VT_R8; dblVal = dblSrc; }
  84. _AFXDISP_INLINE COleVariant::COleVariant(const COleDateTime& dateSrc)
  85.     { vt = VT_DATE; date = dateSrc.m_dt; }
  86. _AFXDISP_INLINE COleVariant::COleVariant(const CByteArray& arrSrc)
  87.     { vt = VT_EMPTY; *this = arrSrc; }
  88. #ifndef __BORLANDC__
  89. _AFXDISP_INLINE COleVariant::COleVariant(const CLongBinary& lbSrc)
  90.     { vt = VT_EMPTY; *this = lbSrc; }
  91. #endif
  92. _AFXDISP_INLINE BOOL COleVariant::operator==(LPCVARIANT pSrc) const
  93.     { return *this == *pSrc; }
  94. _AFXDISP_INLINE COleVariant::operator LPVARIANT()
  95.     { return this; }
  96. _AFXDISP_INLINE COleVariant::operator LPCVARIANT() const
  97.     { return this; }
  98.  
  99. // COleCurrency
  100. _AFXDISP_INLINE COleCurrency::COleCurrency()
  101.     { m_cur.Hi = 0; m_cur.Lo = 0; SetStatus(valid); }
  102. _AFXDISP_INLINE COleCurrency::COleCurrency(CURRENCY cySrc)
  103.     { m_cur = cySrc; SetStatus(valid); }
  104. _AFXDISP_INLINE COleCurrency::COleCurrency(const COleCurrency& curSrc)
  105.     { m_cur = curSrc.m_cur; m_status = curSrc.m_status; }
  106. _AFXDISP_INLINE COleCurrency::COleCurrency(const VARIANT& varSrc)
  107.     { *this = varSrc; }
  108. _AFXDISP_INLINE COleCurrency::CurrencyStatus COleCurrency::GetStatus() const
  109.     { return m_status; }
  110. _AFXDISP_INLINE void COleCurrency::SetStatus(CurrencyStatus status)
  111.     { m_status = status; }
  112. _AFXDISP_INLINE const COleCurrency& COleCurrency::operator+=(const COleCurrency& cur)
  113.     { *this = *this + cur; return *this; }
  114. _AFXDISP_INLINE const COleCurrency& COleCurrency::operator-=(const COleCurrency& cur)
  115.     { *this = *this - cur; return *this; }
  116. _AFXDISP_INLINE const COleCurrency& COleCurrency::operator*=(long nOperand)
  117.     { *this = *this * nOperand; return *this; }
  118. _AFXDISP_INLINE const COleCurrency& COleCurrency::operator/=(long nOperand)
  119.     { *this = *this / nOperand; return *this; }
  120. _AFXDISP_INLINE BOOL COleCurrency::operator==(const COleCurrency& cur) const
  121.     { return(m_status == cur.m_status && m_cur.Hi == cur.m_cur.Hi &&
  122.         m_cur.Lo == cur.m_cur.Lo); }
  123. _AFXDISP_INLINE BOOL COleCurrency::operator!=(const COleCurrency& cur) const
  124.     { return(m_status != cur.m_status || m_cur.Hi != cur.m_cur.Hi ||
  125.         m_cur.Lo != cur.m_cur.Lo); }
  126. _AFXDISP_INLINE COleCurrency::operator CURRENCY() const
  127.     { return m_cur; }
  128.  
  129. // COleDateTime
  130. _AFXDISP_INLINE COleDateTime::COleDateTime()
  131.     { m_dt = 0; SetStatus(valid); }
  132. _AFXDISP_INLINE COleDateTime::COleDateTime(const COleDateTime& dateSrc)
  133.     { m_dt = dateSrc.m_dt; m_status = dateSrc.m_status; }
  134. _AFXDISP_INLINE COleDateTime::COleDateTime(const VARIANT& varSrc)
  135.     { *this = varSrc; }
  136. _AFXDISP_INLINE COleDateTime::COleDateTime(DATE dtSrc)
  137.     { m_dt = dtSrc; SetStatus(valid); }
  138. _AFXDISP_INLINE COleDateTime::COleDateTime(time_t timeSrc)
  139.     { *this = timeSrc; }
  140. _AFXDISP_INLINE COleDateTime::COleDateTime(const SYSTEMTIME& systimeSrc)
  141.     { *this = systimeSrc; }
  142. _AFXDISP_INLINE COleDateTime::COleDateTime(const FILETIME& filetimeSrc)
  143.     { *this = filetimeSrc; }
  144. _AFXDISP_INLINE COleDateTime::COleDateTime(int nYear, int nMonth, int nDay,
  145.     int nHour, int nMin, int nSec)
  146.     { SetDateTime(nYear, nMonth, nDay, nHour, nMin, nSec); }
  147. _AFXDISP_INLINE COleDateTime::COleDateTime(WORD wDosDate, WORD wDosTime)
  148.     { m_status = DosDateTimeToVariantTime(wDosDate, wDosTime, &m_dt) ?
  149.         valid : invalid; }
  150. _AFXDISP_INLINE const COleDateTime& COleDateTime::operator=(const COleDateTime& dateSrc)
  151.     { m_dt = dateSrc.m_dt; m_status = dateSrc.m_status; return *this; }
  152. _AFXDISP_INLINE COleDateTime::DateTimeStatus COleDateTime::GetStatus() const
  153.     { return m_status; }
  154. _AFXDISP_INLINE void COleDateTime::SetStatus(DateTimeStatus status)
  155.     { m_status = status; }
  156. _AFXDISP_INLINE BOOL COleDateTime::operator==(const COleDateTime& date) const
  157.     { return (m_status == date.m_status && m_dt == date.m_dt); }
  158. _AFXDISP_INLINE BOOL COleDateTime::operator!=(const COleDateTime& date) const
  159.     { return (m_status != date.m_status || m_dt != date.m_dt); }
  160. _AFXDISP_INLINE const COleDateTime& COleDateTime::operator+=(
  161.     const COleDateTimeSpan dateSpan)
  162.     { *this = *this + dateSpan; return *this; }
  163. _AFXDISP_INLINE const COleDateTime& COleDateTime::operator-=(
  164.     const COleDateTimeSpan dateSpan)
  165.     { *this = *this - dateSpan; return *this; }
  166. _AFXDISP_INLINE COleDateTime::operator DATE() const
  167.     { return m_dt; }
  168. _AFXDISP_INLINE COleDateTime::SetDate(int nYear, int nMonth, int nDay)
  169.     { return SetDateTime(nYear, nMonth, nDay, 0, 0, 0); }
  170. _AFXDISP_INLINE COleDateTime::SetTime(int nHour, int nMin, int nSec)
  171.     // Set date to zero date - 12/30/1899
  172.     { return SetDateTime(1899, 12, 30, nHour, nMin, nSec); }
  173.  
  174. // COleDateTimeSpan
  175. _AFXDISP_INLINE COleDateTimeSpan::COleDateTimeSpan()
  176.     { m_span = 0; SetStatus(valid); }
  177. _AFXDISP_INLINE COleDateTimeSpan::COleDateTimeSpan(double dblSpanSrc)
  178.     { m_span = dblSpanSrc; SetStatus(valid); }
  179. _AFXDISP_INLINE COleDateTimeSpan::COleDateTimeSpan(
  180.     const COleDateTimeSpan& dateSpanSrc)
  181.     { m_span = dateSpanSrc.m_span; m_status = dateSpanSrc.m_status; }
  182. _AFXDISP_INLINE COleDateTimeSpan::COleDateTimeSpan(
  183.     long lDays, int nHours, int nMins, int nSecs)
  184.     { SetDateTimeSpan(lDays, nHours, nMins, nSecs); }
  185. _AFXDISP_INLINE COleDateTimeSpan::DateTimeSpanStatus COleDateTimeSpan::GetStatus() const
  186.     { return m_status; }
  187. _AFXDISP_INLINE void COleDateTimeSpan::SetStatus(DateTimeSpanStatus status)
  188.     { m_status = status; }
  189. _AFXDISP_INLINE double COleDateTimeSpan::GetTotalDays() const
  190.     { ASSERT(GetStatus() == valid); return m_span; }
  191. _AFXDISP_INLINE double COleDateTimeSpan::GetTotalHours() const
  192.     { ASSERT(GetStatus() == valid); return m_span * 24; }
  193. _AFXDISP_INLINE double COleDateTimeSpan::GetTotalMinutes() const
  194.     { ASSERT(GetStatus() == valid); return m_span * 24 * 60; }
  195. _AFXDISP_INLINE double COleDateTimeSpan::GetTotalSeconds() const
  196.     { ASSERT(GetStatus() == valid); return m_span * 24 * 60 * 60; }
  197. _AFXDISP_INLINE long COleDateTimeSpan::GetDays() const
  198.     { ASSERT(GetStatus() == valid); return (long)m_span; }
  199. _AFXDISP_INLINE BOOL COleDateTimeSpan::operator==(
  200.     const COleDateTimeSpan& dateSpan) const
  201.     { return (m_status == dateSpan.m_status &&
  202.         m_span == dateSpan.m_span); }
  203. _AFXDISP_INLINE BOOL COleDateTimeSpan::operator!=(
  204.     const COleDateTimeSpan& dateSpan) const
  205.     { return (m_status != dateSpan.m_status ||
  206.         m_span != dateSpan.m_span); }
  207. _AFXDISP_INLINE BOOL COleDateTimeSpan::operator<(
  208.     const COleDateTimeSpan& dateSpan) const
  209.     { ASSERT(GetStatus() == valid);
  210.         ASSERT(dateSpan.GetStatus() == valid);
  211.         return m_span < dateSpan.m_span; }
  212. _AFXDISP_INLINE BOOL COleDateTimeSpan::operator>(
  213.     const COleDateTimeSpan& dateSpan) const
  214.     { ASSERT(GetStatus() == valid);
  215.         ASSERT(dateSpan.GetStatus() == valid);
  216.         return m_span > dateSpan.m_span; }
  217. _AFXDISP_INLINE BOOL COleDateTimeSpan::operator<=(
  218.     const COleDateTimeSpan& dateSpan) const
  219.     { ASSERT(GetStatus() == valid);
  220.         ASSERT(dateSpan.GetStatus() == valid);
  221.         return m_span <= dateSpan.m_span; }
  222. _AFXDISP_INLINE BOOL COleDateTimeSpan::operator>=(
  223.     const COleDateTimeSpan& dateSpan) const
  224.     { ASSERT(GetStatus() == valid);
  225.         ASSERT(dateSpan.GetStatus() == valid);
  226.         return m_span >= dateSpan.m_span; }
  227. _AFXDISP_INLINE const COleDateTimeSpan& COleDateTimeSpan::operator+=(
  228.     const COleDateTimeSpan dateSpan)
  229.     { *this = *this + dateSpan; return *this; }
  230. _AFXDISP_INLINE const COleDateTimeSpan& COleDateTimeSpan::operator-=(
  231.     const COleDateTimeSpan dateSpan)
  232.     { *this = *this - dateSpan; return *this; }
  233. _AFXDISP_INLINE COleDateTimeSpan COleDateTimeSpan::operator-() const
  234.     { return -this->m_span; }
  235. _AFXDISP_INLINE COleDateTimeSpan::operator double() const
  236.     { return m_span; }
  237.  
  238. #endif //_AFXDISP_INLINE
  239.  
  240. /////////////////////////////////////////////////////////////////////////////
  241. // OLE Container inlines
  242.  
  243. #ifdef _AFXOLECLI_INLINE
  244.  
  245. // COleClientItem
  246. _AFXOLECLI_INLINE SCODE COleClientItem::GetLastStatus() const
  247.     { ASSERT_VALID(this); return m_scLast; }
  248. _AFXOLECLI_INLINE COleDocument* COleClientItem::GetDocument() const
  249.     { ASSERT_VALID(this); return (COleDocument*)m_pDocument; }
  250. _AFXOLECLI_INLINE OLE_OBJTYPE COleClientItem::GetType() const
  251.     { ASSERT_VALID(this); return m_nItemType; }
  252. _AFXOLECLI_INLINE DVASPECT COleClientItem::GetDrawAspect() const
  253.     { ASSERT_VALID(this); return m_nDrawAspect; }
  254. _AFXOLECLI_INLINE BOOL COleClientItem::IsRunning() const
  255.     { ASSERT_VALID(this);
  256.         ASSERT(m_lpObject != NULL);
  257.         return ::OleIsRunning(m_lpObject); }
  258. _AFXOLECLI_INLINE UINT COleClientItem::GetItemState() const
  259.     { ASSERT_VALID(this); return m_nItemState; }
  260. _AFXOLECLI_INLINE BOOL COleClientItem::IsInPlaceActive() const
  261.     { ASSERT_VALID(this);
  262.         return m_nItemState == activeState || m_nItemState == activeUIState; }
  263. _AFXOLECLI_INLINE BOOL COleClientItem::IsOpen() const
  264.     { ASSERT_VALID(this); return m_nItemState == openState; }
  265. _AFXOLECLI_INLINE BOOL COleClientItem::IsLinkUpToDate() const
  266.     { ASSERT_VALID(this);
  267.         ASSERT(m_lpObject != NULL);
  268.         // TRUE if result is S_OK (aka S_TRUE)
  269.         return m_lpObject->IsUpToDate() == NOERROR; }
  270. _AFXOLECLI_INLINE CView* COleClientItem::GetActiveView() const
  271.     { return m_pView; }
  272.  
  273. // COleLinkingDoc
  274. _AFXOLECLI_INLINE void COleLinkingDoc::BeginDeferErrors()
  275.     { ASSERT(m_pLastException == NULL); ++m_bDeferErrors; }
  276.  
  277. #endif //_AFXOLECLI_INLINE
  278.  
  279. #ifdef _AFXOLEDOBJ_INLINE
  280.  
  281. // COleDataObject
  282. _AFXOLEDOBJ_INLINE COleDataObject::~COleDataObject()
  283.     { Release(); }
  284.  
  285. #endif //_AFXOLECTL_INLINE
  286.  
  287. /////////////////////////////////////////////////////////////////////////////
  288. // OLE dialog inlines
  289.  
  290. #ifdef _AFXODLGS_INLINE
  291.  
  292. _AFXODLGS_INLINE UINT COleDialog::GetLastError() const
  293.     { return m_nLastError; }
  294. _AFXODLGS_INLINE CString COleInsertDialog::GetPathName() const
  295.     { ASSERT_VALID(this);
  296.         ASSERT(GetSelectionType() != createNewItem); return m_szFileName; }
  297. _AFXODLGS_INLINE REFCLSID COleInsertDialog::GetClassID() const
  298.     { ASSERT_VALID(this); return m_io.clsid; }
  299. _AFXODLGS_INLINE HGLOBAL COleInsertDialog::GetIconicMetafile() const
  300.     { ASSERT_VALID(this); return m_io.hMetaPict; }
  301. _AFXODLGS_INLINE DVASPECT COleInsertDialog::GetDrawAspect() const
  302.     { ASSERT_VALID(this); return m_io.dwFlags & IOF_CHECKDISPLAYASICON ?
  303.         DVASPECT_ICON : DVASPECT_CONTENT; }
  304. _AFXODLGS_INLINE HGLOBAL COleConvertDialog::GetIconicMetafile() const
  305.     { ASSERT_VALID(this); return m_cv.hMetaPict; }
  306. _AFXODLGS_INLINE DVASPECT COleConvertDialog::GetDrawAspect() const
  307.     { ASSERT_VALID(this); return (DVASPECT)m_cv.dvAspect; }
  308. _AFXODLGS_INLINE REFCLSID COleConvertDialog::GetClassID() const
  309.     { ASSERT_VALID(this); return m_cv.clsidNew; }
  310. _AFXODLGS_INLINE HGLOBAL COleChangeIconDialog::GetIconicMetafile() const
  311.     { ASSERT_VALID(this); return m_ci.hMetaPict; }
  312. _AFXODLGS_INLINE int COlePasteSpecialDialog::GetPasteIndex() const
  313.     { ASSERT_VALID(this); return m_ps.nSelectedIndex; }
  314. _AFXODLGS_INLINE DVASPECT COlePasteSpecialDialog::GetDrawAspect() const
  315.     { ASSERT_VALID(this); return m_ps.dwFlags & PSF_CHECKDISPLAYASICON ?
  316.         DVASPECT_ICON : DVASPECT_CONTENT; }
  317. _AFXODLGS_INLINE HGLOBAL COlePasteSpecialDialog::GetIconicMetafile() const
  318.     { ASSERT_VALID(this); return m_ps.hMetaPict; }
  319. _AFXODLGS_INLINE UINT COleBusyDialog::GetSelectionType() const
  320.     { ASSERT_VALID(this); return m_selection; }
  321.  
  322. _AFXODLGS_INLINE BOOL COleChangeSourceDialog::IsValidSource()
  323.     { return m_cs.dwFlags & CSF_VALIDSOURCE; }
  324. _AFXODLGS_INLINE CString COleChangeSourceDialog::GetDisplayName()
  325.     { return m_cs.lpszDisplayName; }
  326. _AFXODLGS_INLINE CString COleChangeSourceDialog::GetFileName()
  327.     { return CString(m_cs.lpszDisplayName, m_cs.nFileLength); }
  328. _AFXODLGS_INLINE CString COleChangeSourceDialog::GetItemName()
  329.     { return m_cs.lpszDisplayName+m_cs.nFileLength; }
  330. _AFXODLGS_INLINE CString COleChangeSourceDialog::GetFromPrefix()
  331.     { return m_cs.lpszFrom; }
  332. _AFXODLGS_INLINE CString COleChangeSourceDialog::GetToPrefix()
  333.     { return m_cs.lpszTo; }
  334.  
  335. #endif //_AFXODLGS_INLINE
  336.  
  337. /////////////////////////////////////////////////////////////////////////////
  338. // OLE Server inlines
  339.  
  340. #ifdef _AFXOLESVR_INLINE
  341.  
  342. // COleServerItem
  343. _AFXOLESVR_INLINE COleServerDoc* COleServerItem::GetDocument() const
  344.     { ASSERT_VALID(this); return (COleServerDoc*)m_pDocument; }
  345. _AFXOLESVR_INLINE void COleServerItem::NotifyChanged(DVASPECT nDrawAspect)
  346.     { ASSERT_VALID(this); NotifyClient(OLE_CHANGED, nDrawAspect); }
  347. _AFXOLESVR_INLINE const CString& COleServerItem::GetItemName() const
  348.     { ASSERT_VALID(this); return m_strItemName; }
  349. _AFXOLESVR_INLINE void COleServerItem::SetItemName(LPCTSTR lpszItemName)
  350. {
  351.     ASSERT_VALID(this);
  352.     ASSERT(lpszItemName != NULL);
  353.     ASSERT(AfxIsValidString(lpszItemName));
  354.     m_strItemName = lpszItemName;
  355. }
  356. _AFXOLESVR_INLINE BOOL COleServerItem::IsLinkedItem() const
  357.     { ASSERT_VALID(this); return GetDocument()->m_pEmbeddedItem != this; }
  358. _AFXOLESVR_INLINE COleDataSource* COleServerItem::GetDataSource()
  359.     { ASSERT_VALID(this); return &m_dataSource; }
  360.  
  361. // COleServerDoc
  362. _AFXOLESVR_INLINE void COleServerDoc::NotifyChanged()
  363.     { ASSERT_VALID(this); NotifyAllItems(OLE_CHANGED, DVASPECT_CONTENT); }
  364. _AFXOLESVR_INLINE void COleServerDoc::NotifyClosed()
  365.     { ASSERT_VALID(this); NotifyAllItems(OLE_CLOSED, 0); }
  366. _AFXOLESVR_INLINE void COleServerDoc::NotifySaved()
  367.     { ASSERT_VALID(this); NotifyAllItems(OLE_SAVED, 0); }
  368. _AFXOLESVR_INLINE BOOL COleServerDoc::IsEmbedded() const
  369.     { ASSERT_VALID(this); return m_bEmbedded; }
  370. _AFXOLESVR_INLINE BOOL COleServerDoc::IsInPlaceActive() const
  371.     { ASSERT_VALID(this); return m_pInPlaceFrame != NULL; }
  372.  
  373. #endif //_AFXOLESVR_INLINE
  374.  
  375. /////////////////////////////////////////////////////////////////////////////
  376.