home *** CD-ROM | disk | FTP | other *** search
/ Mastering Visual Basic 6 / mastvb6.iso / numega / sc501.exe / data1.cab / Examples / DATAOBJ.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1997-11-25  |  4.1 KB  |  152 lines

  1. /*
  2.  * DataObj.cpp
  3.  * $Header: /bcsample/IFACEDLL/DATAOBJ.CPP 1     5/28/96 1:12p Dave $
  4.  *
  5.  * Description:
  6.  *  This file provides the test-implementation of the IDataObject interface.
  7.  *
  8.  * Notes:
  9.  *  <implementation notes go here>
  10.  *
  11.  ***********************************************************************
  12.  *
  13.  * NuMega Technologies, Inc.
  14.  * P.O. Box 7780
  15.  * Nashua, NH 03060
  16.  *
  17.  * (c) Copyright 1994, 1995, 1996 NuMega Technologies, Inc.
  18.  * ALL RIGHTS RESERVED.
  19.  *
  20.  ***********************************************************************
  21.  *
  22.  **********************************************************************/
  23.  
  24. #include "IFT_OLE.h"
  25. #include "DataObj.h"
  26.  
  27. CIDataObject :: CIDataObject ( LPUNKNOWN  pUnkOuter , PCIUnknown pMainIUnk )
  28. {
  29.     m_cRef = 0 ;
  30.     m_pUnkOuter = pUnkOuter ;
  31.     m_pBaseUnk = pMainIUnk ;
  32. }
  33.  
  34. CIDataObject :: ~CIDataObject ( void )
  35. {
  36. }
  37.  
  38. BOOL CIDataObject :: Init ( void )
  39. {
  40.     return ( TRUE ) ;
  41. }
  42.  
  43. STDMETHODIMP_( ULONG ) CIDataObject :: AddRef ( void )
  44. {
  45.     return ( m_pBaseUnk->AddRef( ) ) ;
  46. }
  47.  
  48. STDMETHODIMP_( ULONG ) CIDataObject :: Release ( void )
  49. {
  50.     return ( m_pBaseUnk->Release( ) ) ;
  51. }
  52.  
  53. STDMETHODIMP CIDataObject :: QueryInterface ( REFIID riid ,
  54.                                                     PPVOID ppv   )
  55. {
  56.     *ppv = NULL ;
  57.  
  58.     if ( IID_IDataObject == riid )
  59.     {
  60.         *ppv = (IDataObject*)this ;
  61.         ((LPUNKNOWN)*ppv)->AddRef ( ) ;
  62.         return ( NOERROR ) ;
  63.     }
  64.     else
  65.     {
  66.         // We just defer any other calls to the base IUnknown.
  67.         return ( m_pBaseUnk->QueryInterface ( riid , ppv ) ) ;
  68.     }
  69. }
  70.  
  71. STDMETHODIMP CIDataObject :: InternalQueryInterface ( REFIID riid ,
  72.                                                       PPVOID ppv   )
  73. {
  74.     // Always set the interface memory location to NULL.
  75.     *ppv = NULL ;
  76.  
  77.     // If this ID is ours, then return ourselves.
  78.     if ( IID_IDataObject == riid )
  79.     {
  80.         *ppv = (IDataObject*)this ;
  81.         return ( NOERROR ) ;
  82.     }
  83.     return ( E_NOINTERFACE ) ;
  84. }
  85.  
  86.  
  87. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  88. // Place all interface functions here!!
  89.  
  90. HRESULT __stdcall CIDataObject :: GetData ( 
  91.                                   FORMATETC __RPC_FAR *pformatetcIn ,
  92.                                   STGMEDIUM __RPC_FAR *pmedium       )
  93. {
  94.     return ( S_OK ) ;
  95. }    
  96.  
  97. HRESULT __stdcall CIDataObject :: GetDataHere ( 
  98.                                   FORMATETC __RPC_FAR *pformatetc ,
  99.                                   STGMEDIUM __RPC_FAR *pmedium     )
  100. {
  101.     return ( S_OK ) ;
  102. }    
  103.  
  104. HRESULT __stdcall CIDataObject :: QueryGetData( 
  105.                                   FORMATETC __RPC_FAR *pformatetc )
  106. {
  107.     return ( S_OK ) ; 
  108. }    
  109.  
  110. HRESULT __stdcall CIDataObject :: GetCanonicalFormatEtc ( 
  111.                                   FORMATETC __RPC_FAR *pformatectIn ,
  112.                                   FORMATETC __RPC_FAR *pformatetcOut )
  113. {
  114.     return ( S_OK ) ;
  115. }    
  116.  
  117. HRESULT __stdcall CIDataObject :: SetData ( 
  118.                                   FORMATETC __RPC_FAR *pformatetc ,
  119.                                   STGMEDIUM __RPC_FAR *pmedium    ,
  120.                                   BOOL fRelease                    )
  121. {
  122.     return ( S_OK ) ;
  123. }    
  124.  
  125. HRESULT __stdcall CIDataObject :: EnumFormatEtc ( 
  126.                                   DWORD dwDirection                                   ,
  127.                                   IEnumFORMATETC __RPC_FAR *__RPC_FAR *ppenumFormatEtc ) 
  128. {
  129.     return ( S_OK ) ;
  130. }    
  131.  
  132. HRESULT __stdcall CIDataObject :: DAdvise ( 
  133.                                   FORMATETC __RPC_FAR *pformatetc ,
  134.                                   DWORD advf                      ,
  135.                                   IAdviseSink __RPC_FAR *pAdvSink ,
  136.                                   DWORD __RPC_FAR *pdwConnection   )
  137. {
  138.     return ( S_OK ) ;
  139. }    
  140.  
  141. HRESULT __stdcall CIDataObject :: DUnadvise ( DWORD dwConnection )
  142. {
  143.     return ( S_OK ) ;
  144. }    
  145.  
  146. HRESULT __stdcall CIDataObject :: EnumDAdvise ( 
  147.                                   IEnumSTATDATA __RPC_FAR *__RPC_FAR *ppenumAdvise )
  148. {
  149.     return ( S_OK ) ;
  150. }    
  151.  
  152.