home *** CD-ROM | disk | FTP | other *** search
/ Master 95 #1 / MASTER95_1.iso / microsof / vbasic4 / vb4-6.cab / vbocxint.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-07-26  |  6.8 KB  |  179 lines

  1. //---------------------------------------------------------------------------
  2. // VBOCXINT.H
  3. //---------------------------------------------------------------------------
  4. // Copyright (c) 1991-1995, Microsoft Corp.  All Rights Reserved.
  5. //---------------------------------------------------------------------------
  6. // Include file for the OLE Custom Controls Visual Basic
  7. // programming interface.
  8. //---------------------------------------------------------------------------
  9.  
  10. #if !defined (_VBOCXINT_H_)
  11. #define _VBOCXINT_H_
  12.         
  13. //---------------------------------------------------------------------------
  14. // Data xfer structure for VBM_LINKGETDATA or VBM_LINKSETDATA
  15. //---------------------------------------------------------------------------
  16. typedef struct tagVBLINKDATA
  17.   {
  18.   WORD     wReserved;
  19.   DWORD       cb;          // Size of data
  20.   HANDLE   hData;      // Handle to data
  21.   DWORD    dwReserved;
  22.   } VBLINKDATA;
  23.  
  24. typedef VBLINKDATA FAR *LPLINKDATA;
  25.  
  26.  
  27. #define LPDDEDATA LPLINKDATA
  28. #define LINKSRCTELL                      1
  29. #define LINKSRCASK                       0
  30. #define MAXLINKITEMNAME                 256
  31.  
  32. //---------------------------------------------------------------------------
  33. // IVBDDESite
  34. //---------------------------------------------------------------------------
  35. DECLARE_INTERFACE_(IVBDDESite, IUnknown)
  36. {
  37.     /* IUnknown methods */
  38.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  39.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  40.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  41.  
  42.     //(CLIENT) pass in a string and we will add the index
  43.     STDMETHOD_(VOID, VBLinkMakeItemName)(THIS_ LPSZ lpszBuff) PURE;
  44.     //(SERVER) notifies the server that the data exposed by this control
  45.     // has changed.
  46.     STDMETHOD_(ERR,  VBLinkPostAdvise)(THIS_ VOID) PURE;
  47.     //(CLIENT) design time only. default implementation of LinkPasteLinkOk
  48.     STDMETHOD_(BOOL, VBPasteLinkOk)(THIS_ HANDLE FAR * phTriplet) PURE;
  49.     //(CLIENT) default implementation of GetItemName
  50.     STDMETHOD_(ERR,  LinkGetItemNameDefault)(THIS_ int ls, LPSZ lpszlinkitem) PURE;
  51. };
  52.  
  53. //---------------------------------------------------------------------------
  54. // IVBDDE
  55. //---------------------------------------------------------------------------
  56. DECLARE_INTERFACE_(IVBDDE, IUnknown)
  57. {
  58.     /* IUnknown methods */
  59.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  60.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  61.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  62.  
  63.     //(BOTH)
  64.     STDMETHOD_(LRESULT, LinkEnumFormats)(THIS_ UINT df, UINT i) PURE;
  65.     //both?
  66.     STDMETHOD_(LRESULT, LinkGetData)    (THIS_ int cf, LPDDEDATA lpddedata) PURE;
  67.     STDMETHOD_(LRESULT, LinkSetData)    (THIS_ int cf, LPDDEDATA lpddedata) PURE;
  68.     STDMETHOD_(LRESULT, LinkGetItemName)(THIS_ int ls, LPSZ lpszlinkitem) PURE;
  69.     //(CLIENT)
  70.     STDMETHOD_(BOOL, QPasteLinkOK)      (THIS) PURE;
  71. };
  72.  
  73.  
  74. //---------------------------------------------------------------------------
  75. // IVBGetControl
  76. //---------------------------------------------------------------------------
  77.  
  78. // Constants for dwWhich parameter:
  79. #define GC_WCH_SIBLING        0x00000001L
  80. #define GC_WCH_CONTAINER    0x00000002L   // no FONLYNEXT/PREV
  81. #define GC_WCH_CONTAINED    0x00000003L   // no FONLYNEXT/PREV
  82. #define GC_WCH_ALL        0x00000004L
  83. #define GC_WCH_FREVERSEDIR  0x08000000L   // OR'd with others
  84. #define GC_WCH_FONLYNEXT    0x10000000L   // OR'd with others
  85. #define GC_WCH_FONLYPREV    0x20000000L   // OR'd with others
  86. #define GC_WCH_FSELECTED    0x40000000L   // OR'd with others
  87.  
  88. DECLARE_INTERFACE_(IVBGetControl, IUnknown)
  89.     {
  90.     // *** IUnknown methods ****
  91.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  92.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  93.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  94.  
  95.     // *** IVBGetControl methods ****
  96.     STDMETHOD(EnumControls)(THIS_ DWORD dwOleContF, DWORD dwWhich, 
  97.                             LPENUMUNKNOWN FAR *ppenumUnk) PURE;
  98.     };
  99.  
  100. //---------------------------------------------------------------------------
  101. // IGetOleObject
  102. //---------------------------------------------------------------------------
  103. DECLARE_INTERFACE_(IGetOleObject, IUnknown)
  104.     {
  105.     // *** IUnknown methods ****
  106.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  107.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  108.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  109.  
  110.     // *** IGetOleObject methods ****
  111.     STDMETHOD(GetOleObject)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  112.     };
  113.  
  114. //---------------------------------------------------------------------------
  115. // IGetVBAObject
  116. //---------------------------------------------------------------------------
  117. #undef INTERFACE
  118. #define INTERFACE IGetVBAObject
  119. DECLARE_INTERFACE_(IGetVBAObject,IUnknown)
  120.   {
  121.   /* IUnknown methods */
  122.   STDMETHOD(QueryInterface)(THIS_ REFIID riid, void FAR* FAR* ppvObj) PURE;
  123.   STDMETHOD_(unsigned long, AddRef)(THIS) PURE;
  124.   STDMETHOD_(unsigned long, Release)(THIS) PURE;
  125.  
  126.   STDMETHOD(GetObject)(THIS_ REFIID riid, void FAR* FAR* ppvObj, DWORD dwReserved) PURE;
  127.   };
  128.  
  129. #undef INTERFACE
  130. #define INTERFACE IVBFormat
  131. DECLARE_INTERFACE_( IVBFormat, IUnknown )
  132. {
  133.     BEGIN_INTERFACE
  134.  
  135.     STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  136.     STDMETHOD_(ULONG, AddRef) (THIS) PURE; 
  137.     STDMETHOD_(ULONG, Release) (THIS) PURE;
  138.  
  139.     STDMETHOD_( HRESULT, Format ) (THIS_ LPVARIANT lpVarData, 
  140.                                          LPOLESTR  szFormat,
  141.                                    LPVOID    lpBuffer, 
  142.                                    USHORT    cbBuffer, 
  143.                                    LCID      lcid,
  144.                                    USHORT    sFirstDayOfWeek,
  145.                                    USHORT    sFirstWeekOfYear,
  146.                                    USHORT   *pcbResult) PURE;
  147. };
  148.  
  149.  
  150. #undef INTERFACE
  151. #define INTERFACE IVBFiles
  152.  
  153. DECLARE_INTERFACE_( IVBFiles, IUnknown )
  154. {
  155.     BEGIN_INTERFACE
  156.  
  157.     STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  158.     STDMETHOD_(ULONG, AddRef) (THIS) PURE;
  159.     STDMETHOD_(ULONG, Release) (THIS) PURE;
  160.  
  161.     STDMETHOD_( HRESULT, Read ) (THIS_ USHORT  usFileNo, 
  162.                                  LPVOID  lpBuffer, 
  163.                                  UINT    cb) PURE;
  164.  
  165.     STDMETHOD_( HRESULT, Write ) (THIS_ USHORT  usFileNo, 
  166.                                   LPVOID  lpBuffer, 
  167.                                   UINT    cb) PURE;
  168.  
  169.     STDMETHOD_( HRESULT, Seek ) (THIS_ USHORT usFileNo, 
  170.                                  LONG   lOffset, 
  171.                                  LONG  *plPos) PURE;
  172.  
  173.     STDMETHOD_( HRESULT, SeekRel ) (THIS_ USHORT usFileNo, 
  174.                                     LONG   lOffset, 
  175.                                     LONG  *plPos) PURE;
  176. };
  177.  
  178. #endif //_VBOCXINT_H_
  179.