home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / vsof.h < prev    next >
C/C++ Source or Header  |  2000-02-01  |  4KB  |  126 lines

  1. //--vsof.h---------------------------------------------------------------------
  2. //
  3. // Virtual Stream On File interface header file.
  4. //
  5. //
  6. // Copyright (C) Microsoft Corp., 1986-1996.  All Rights Reserved.
  7. //    
  8. //-----------------------------------------------------------------------------
  9.  
  10. #ifndef __VSOF_H__
  11. #pragma option push -b -a8 -pc -A- /*P_O_Push*/
  12. #define __VSOF_H__
  13.  
  14. /* VirtualStreamOnFile (VSOF) */
  15.  
  16. /*
  17.  *    Methods and #define's for implementing an OLE 2.0 storage stream
  18.  *    (as defined in the OLE 2.0 specs) on top of a system file.
  19.  */
  20.  
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24.  
  25. // Flags unique to VSOF IStream implementation
  26. #define VSOF_CLONEABLE      ((ULONG) 0x40000000)    // allow stream to be cloned
  27. #define VSOF_UNIQUEFILENAME    ((ULONG) 0x80000000)    // Want unique temporary file name
  28.  
  29. //$--HrOpenVirtualStreamOnFile---------------------------------------------------
  30. //
  31. // DESCRIPTION:    Opens a virtual (buffered) stream on a file.
  32. //
  33. // INPUT:    lpAllocateBuffer    --    allocate routine
  34. //            lpFreeBuffer    --    de-allocation routine
  35. //            ulFlags    --    IStream interface flags--see notes
  36. //            lpszFileName    --    file name with complete path
  37. //            lpszPrefix    --    file name prefix
  38. //            
  39. //
  40. // OUTPUT:    lppStream    --    stream pointer
  41. //
  42. // RETURNS:    HRESULT    --    NOERROR if successful,
  43. //                        E_INVALIDARG if bad input,
  44. //                        E_FAIL otherwise.
  45. //
  46. // ulFlag notes:
  47. //
  48. // Specifying STGM_DELETEONRELEASE makes the file opened a temporary file (It
  49. // will be deleted when the stream is released).
  50. //
  51. // Specifying STGM_SHARE_EXCLUSIVE makes the file accessible by only one application
  52. // at a time.
  53. //
  54. // Specifying STGM_SHARE_DENY_READ makes the file readable by only one application
  55. // at a time.
  56. //
  57. // Specifying STGM_SHARE_DENY_WRITE makes the file writable by only one application
  58. // at a time.
  59. //
  60. // Failing to specify a STGM_SHARE flag makes the file readable and writable
  61. // by mutliple applications at the same time.
  62. //
  63. //-----------------------------------------------------------------------------
  64. STDMETHODIMP HrOpenVirtualStreamOnFile(
  65.     IN LPALLOCATEBUFFER    lpAllocateBuffer,    // allocation routine
  66.     IN LPFREEBUFFER        lpFreeBuffer,        // de-allocation routine
  67.     IN ULONG            ulFlags,            // stream interface flags
  68.     IN LPSTR            lpszFileName,        // file name
  69.     IN LPSTR            lpszPrefix,            // file name prefix
  70.     OUT LPSTREAM FAR *    lppStream);            // pointer to stream
  71.  
  72. typedef HRESULT (STDMETHODCALLTYPE FAR * LPOPENVIRTUALSTREAMONFILE) 
  73. (
  74.     LPALLOCATEBUFFER    lpAllocateBuffer,
  75.     LPFREEBUFFER        lpFreeBuffer,
  76.     ULONG                ulFlags,
  77.     LPSTR                lpszFileName,
  78.     LPSTR                lpszPrefix,
  79.     LPSTREAM FAR *        lppStream
  80. );
  81.  
  82. // Special virtual stream interface extensions for performance...
  83. // There are certain situations where knowing if the stream has changed can be
  84. // used to make desicions that will improve performance.
  85.  
  86. //$--VSOF_SetClean-------------------------------------------------------------
  87. //
  88. // DESCRIPTION:    Unsets stream dirty flag
  89. //
  90. // INPUT:    lpStream    --    stream pointer
  91. //
  92. // RETURNS:    HRESULT    --    NOERROF if successful,
  93. //                        E_INVALIDARG if bad input.
  94. //
  95. //-----------------------------------------------------------------------------
  96. HRESULT VSOF_SetClean(
  97.     IN LPSTREAM lpStream);    // stream pointer
  98.  
  99. //$--VSOF_IsDirty-------------------------------------------------------------
  100. //
  101. // DESCRIPTION:    Returns stream dirty flag
  102. //
  103. // INPUT:    lpStream    --    stream pointer
  104. //
  105. // RETURNS:    HRESULT    --    NOERROF if successful,
  106. //                        E_INVALIDARG if bad input.
  107. //
  108. //-----------------------------------------------------------------------------
  109. HRESULT VSOF_IsDirty(    
  110.     IN LPSTREAM lpStream,        // stream pointer
  111.     OUT BOOL * pfDirty);        // dirty flag pointer
  112.  
  113. #ifdef    WIN32
  114. #define OPENVIRTUALSTREAMONFILE "HrOpenVirtualStreamOnFile"
  115. #endif
  116. #ifdef    WIN16
  117. #define OPENVIRTUALSTREAMONFILE "_OPENVIRTUALSTREAMONFILE"
  118. #endif
  119.  
  120. #ifdef __cplusplus
  121. }
  122. #endif
  123.   
  124. #pragma option pop /*P_O_Pop*/
  125. #endif //__VSOF_H__
  126.