Home COM GDI+ WebBrowser Data Access

IMAPIViewContext Interface

 

IID_IMAPIViewContext

{00020321-0000-0000-C000-000000000046}

 

 

The IMAPIViewContext interface manages a form in a client application's form viewer.

 

 


' ****************************************************************************************
' IMAPIViewContext interface
' $IID_IMAPIViewContext = GUID$("{00020321-0000-0000-C000-000000000046}")
' The IMAPIViewContext interface manages a form in a client application's form viewer.
' ****************************************************************************************

' ========================================================================================
' IUnknown virtual table
' ========================================================================================
TYPE IMAPIViewContext_IUnknownVtbl
   ' IUnknown interface
   QueryInterface AS DWORD           ' Returns pointers to supported interfaces
   AddRef AS DWORD                   ' Increments reference count
   Release AS DWORD                  ' Decrements reference count
   ' IMAPIViewContext interface
   SetAdviseSink AS DWORD            ' SetAdviseSink method
   ActivateNext AS DWORD             ' ActivateNext method
   GetPrintSetup AS DWORD            ' GetPrintSetup method
   GetSaveStream AS DWORD            ' GetSaveStream method
   GetViewStatus AS DWORD            ' GetViewStatus method
   ' Custom data
   pVtblAddr AS DWORD                ' Address of the virtual table
   cRef AS DWORD                     ' Reference counter
   pthis AS DWORD                    ' IUnknown of the control that fires the events
END TYPE
' ========================================================================================

' ========================================================================================
' Builds the IUnknown Virtual Table
' ========================================================================================
FUNCTION IMAPIViewContext_BuildVtbl (BYVAL pthis AS DWORD) AS DWORD

   LOCAL pVtbl AS IMAPIViewContext_IUnknownVtbl PTR
   LOCAL pUnk AS IMAPIViewContext_IUnknownVtbl PTR

   pVtbl = HeapAlloc(GetProcessHeap(), %HEAP_ZERO_MEMORY, SIZEOF(@pVtbl))
   IF pVtbl = 0 THEN EXIT FUNCTION

   @pVTbl.QueryInterface        = CODEPTR(IMAPIViewContext_QueryInterface)
   @pVTbl.AddRef                = CODEPTR(IMAPIViewContext_AddRef)
   @pVTbl.Release               = CODEPTR(IMAPIViewContext_Release)
   @pVTbl.SetAdviseSink         = CODEPTR(IMAPIViewContext_SetAdviseSink)
   @pVTbl.ActivateNext          = CODEPTR(IMAPIViewContext_ActivateNext)
   @pVTbl.GetPrintSetup         = CODEPTR(IMAPIViewContext_GetPrintSetup)
   @pVTbl.GetSaveStream         = CODEPTR(IMAPIViewContext_GetSaveStream)
   @pVTbl.GetViewStatus         = CODEPTR(IMAPIViewContext_GetViewStatus)
   @pVtbl.pVtblAddr             = pVtbl
   @pVtbl.pthis                 = pthis

   pUnk = VARPTR(@pVtbl.pVtblAddr)
   FUNCTION = pUnk

END FUNCTION
' ========================================================================================

' ========================================================================================
' UI4 AddRef()
' Increments the reference counter.
' ========================================================================================
FUNCTION IMAPIViewContext_AddRef (BYVAL pIMAPIViewContext AS IMAPIViewContext_IUnknownVtbl PTR) AS DWORD
   INCR @@pIMAPIViewContext.cRef
   FUNCTION = @@pIMAPIViewContext.cRef
END FUNCTION
' ========================================================================================

' ========================================================================================
' HRESULT QueryInterface([in] *GUID riid, [out] **VOID ppvObj)
' Returns the IUnknown of our class and increments the reference counter.
' ========================================================================================
FUNCTION IMAPIViewContext_QueryInterface (BYVAL pIMAPIViewContext AS IMAPIViewContext_IUnknownVtbl PTR, BYREF riid AS GUID, BYREF ppvObj AS DWORD) AS DWORD
   ppvObj = pIMAPIViewContext
   IMAPIViewContext_AddRef pIMAPIViewContext
   FUNCTION = %S_OK
END FUNCTION
' ========================================================================================

' ========================================================================================
' UI4 Release()
' Releases our class if there is only a reference to him and decrements the reference counter.
' ========================================================================================
FUNCTION IMAPIViewContext_Release (BYVAL pIMAPIViewContext AS IMAPIViewContext_IUnknownVtbl PTR) AS DWORD
   LOCAL pVtblAddr AS DWORD
   IF @@pIMAPIViewContext.cRef = 1 THEN
      pVtblAddr = @@pIMAPIViewContext.pVtblAddr
      IF ISTRUE HeapFree(GetProcessHeap(), 0, BYVAL pVtblAddr) THEN
         FUNCTION = 0
         EXIT FUNCTION
      ELSE
         FUNCTION = @@pIMAPIViewContext.cRef
         EXIT FUNCTION
      END IF
   END IF
   DECR @@pIMAPIViewContext.cRef
   FUNCTION = @@pIMAPIViewContext.cRef
END FUNCTION
' ========================================================================================

' ========================================================================================
' IMAPIViewContext::SetAdviseSink
' Manages a form's registration to receive notifications about changes in the viewer.
' ========================================================================================
FUNCTION IMAPIViewContext_SetAdviseSink ( _
  BYVAL BYVAL pIMAPIViewContext AS IMAPIViewContext_IUnknownVtbl PTR _
, BYVAL pmvns AS DWORD _
) AS LONG

   ' *** Put your code here ***

' Return Values
' %S_OK  The registration or cancellation for form notification succeeded.

END FUNCTION
' ========================================================================================

' ========================================================================================
' IMAPIViewContext::ActivateNext
' Manages a form's registration to receive notifications about changes in the viewer.
' ========================================================================================
FUNCTION IMAPIViewContext_ActivateNext ( _
  BYVAL BYVAL pIMAPIViewContext AS IMAPIViewContext_IUnknownVtbl PTR _
, BYVAL ulDir AS DWORD _
, BYREF prcPosRect AS RECT _
) AS LONG

   ' *** Put your code here ***

' Return Values
' %S_OK  The message was activated successfully.
' %S_FALSE The message was activated successfully, but a different type of form was
' opened in the process.

END FUNCTION
' ========================================================================================

' ========================================================================================
' IMAPIViewContext::GetPrintSetup
' Manages a form's registration to receive notifications about changes in the viewer.
' ========================================================================================
FUNCTION IMAPIViewContext_GetPrintSetup ( _
  BYVAL BYVAL pIMAPIViewContext AS IMAPIViewContext_IUnknownVtbl PTR _
, BYVAL ulFlags AS DWORD _
, BYREF lppFormPrintSetup AS DWORD _
) AS LONG

   ' *** Put your code here ***

' Return Value
' %S_OK The printing information was successfully retrieved.

END FUNCTION
' ========================================================================================

' ========================================================================================
' IMAPIViewContext::GetSaveStream
' Retrieves a stream to be used for saving the current message.
' ========================================================================================
FUNCTION IMAPIViewContext_GetSaveStream ( _
  BYVAL BYVAL pIMAPIViewContext AS IMAPIViewContext_IUnknownVtbl PTR _
, BYREF pulFlags AS DWORD _
, BYREF pulFormat AS DWORD _
, BYREF ppstm AS DWORD _
) AS LONG

   ' *** Put your code here ***

' Return Value
' %S_OK The stream was successfully retrieved.

END FUNCTION
' ========================================================================================

' ========================================================================================
' IMAPIViewContext::GetViewStatus
' Retrieves the current viewer status.
' ========================================================================================
FUNCTION IMAPIViewContext_GetViewStatus ( _
  BYVAL BYVAL pIMAPIViewContext AS IMAPIViewContext_IUnknownVtbl PTR _
, BYREF lpulStatus AS DWORD _
) AS LONG

   ' *** Put your code here ***

' Return Value
' %S_OK The viewer's status was successfully returned.

END FUNCTION
' ========================================================================================
 

 

Page last updated on Monday, 03 April 2006 20:17:02 +0200