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

  1. /*
  2.  * VwObj.cpp
  3.  * $Header: /bcsample/IFACEDLL/VWOBJ.CPP 1     5/28/96 1:12p Dave $
  4.  *
  5.  * Description:
  6.  *  This file provides the test-implementation of the IViewObject 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. // Replace this include with yours.
  26. #include "VwObj.h"
  27.  
  28. CIViewObject :: CIViewObject ( LPUNKNOWN  pUnkOuter , PCIUnknown pMainIUnk )
  29. {
  30.     m_cRef = 0 ;
  31.     m_pUnkOuter = pUnkOuter ;
  32.     m_pBaseUnk = pMainIUnk ;
  33. }
  34.  
  35. CIViewObject :: ~CIViewObject ( void )
  36. {
  37. }
  38.  
  39. BOOL CIViewObject :: Init ( void )
  40. {
  41.     return ( TRUE ) ;
  42. }
  43.  
  44. STDMETHODIMP_( ULONG ) CIViewObject :: AddRef ( void )
  45. {
  46.     return ( m_pBaseUnk->AddRef( ) ) ;
  47. }
  48.  
  49. STDMETHODIMP_( ULONG ) CIViewObject :: Release ( void )
  50. {
  51.     return ( m_pBaseUnk->Release( ) ) ;
  52. }
  53.  
  54. STDMETHODIMP CIViewObject :: QueryInterface ( REFIID riid ,
  55.                                               PPVOID ppv   )
  56. {
  57.     *ppv = NULL ;
  58.  
  59.     if ( IID_IViewObject == riid )
  60.     {
  61.         *ppv = ( IViewObject* ) this ;
  62.         ( ( LPUNKNOWN ) *ppv )->AddRef ( ) ;
  63.         return ( NOERROR ) ;
  64.     }
  65.     else
  66.     {
  67.         // We just defer any other calls to the base IUnknown.
  68.         return ( m_pBaseUnk->QueryInterface ( riid , ppv ) ) ;
  69.     }
  70. }
  71.  
  72. STDMETHODIMP CIViewObject :: InternalQueryInterface ( REFIID riid ,
  73.                                                       PPVOID ppv   )
  74. {
  75.     // Always set the interface memory location to NULL.
  76.     *ppv = NULL ;
  77.  
  78.     // If this ID is ours, then return ourselves.
  79.     if ( IID_IViewObject == riid )
  80.     {
  81.         *ppv = ( IViewObject* ) this ;
  82.         return ( NOERROR ) ;
  83.     }
  84.     return ( E_NOINTERFACE ) ;
  85. }
  86.  
  87.  
  88. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  89. // Place all interface functions here!!
  90.  
  91. HRESULT __stdcall CIViewObject :: Draw ( 
  92.        DWORD dwDrawAspect                                                     ,
  93.        LONG lindex                                                            ,
  94.        void __RPC_FAR *pvAspect                                               ,
  95.        DVTARGETDEVICE __RPC_FAR *ptd                                          ,
  96.        HDC hdcTargetDev                                                       ,
  97.        HDC hdcDraw                                                            ,
  98.        LPCRECTL lprcBounds                                                    ,
  99.        LPCRECTL lprcWBounds                                                   ,
  100.        BOOL ( __stdcall __stdcall __RPC_FAR *pfnContinue )( DWORD dwContinue) ,
  101.        DWORD dwContinue                                                        )
  102. {
  103.     return ( S_OK ) ;
  104. }
  105.         
  106. HRESULT __stdcall CIViewObject :: GetColorSet( 
  107.         DWORD dwDrawAspect                          ,
  108.         LONG lindex                                 ,
  109.         void __RPC_FAR *pvAspect                    ,
  110.         DVTARGETDEVICE __RPC_FAR *ptd               ,
  111.         HDC hicTargetDev                            ,
  112.         LOGPALETTE __RPC_FAR *__RPC_FAR *ppColorSet  ) 
  113. {
  114.     return ( S_OK ) ; 
  115. }        
  116.     
  117. HRESULT __stdcall CIViewObject :: Freeze ( 
  118.         DWORD dwDrawAspect         ,
  119.         LONG lindex                ,
  120.         void __RPC_FAR *pvAspect   ,
  121.         DWORD __RPC_FAR *pdwFreeze  ) 
  122. {
  123.     return ( S_OK ) ;
  124. }        
  125.     
  126. HRESULT __stdcall CIViewObject :: Unfreeze ( DWORD dwFreeze ) 
  127. {
  128.     return ( S_OK ) ;
  129. }        
  130.     
  131. HRESULT __stdcall CIViewObject :: SetAdvise( DWORD aspects                   ,
  132.                                              DWORD advf                      ,
  133.                                              IAdviseSink __RPC_FAR *pAdvSink  ) 
  134. {
  135.     return ( S_OK ) ;
  136. }        
  137.     
  138. HRESULT __stdcall CIViewObject :: GetAdvise( 
  139.                                   DWORD __RPC_FAR *pAspects                   ,
  140.                                   DWORD __RPC_FAR *pAdvf                      ,
  141.                                   IAdviseSink __RPC_FAR *__RPC_FAR *ppAdvSink  ) 
  142. {
  143.     return ( S_OK ) ;
  144. }        
  145.