1 module speech.windows.ObjIdl; 2 3 import core.sys.windows.windows; 4 import core.sys.windows.com; 5 6 /**************************************************************************** 7 * Structured Storage Interfaces 8 ****************************************************************************/ 9 interface ISequentialStream : IUnknown 10 { 11 /+ TODO 12 HRESULT Read( 13 [annotation("__out_bcount_part(cb, *pcbRead)")] 14 void *pv, 15 [in] ULONG cb, 16 [annotation("__out_opt")] ULONG *pcbRead); 17 18 HRESULT RemoteRead( 19 [out, size_is(cb), length_is(*pcbRead)] 20 byte *pv, 21 [in] ULONG cb, 22 [out] ULONG *pcbRead); 23 24 HRESULT Write( 25 [annotation("__in_bcount(cb)")] void const *pv, 26 [in] ULONG cb, 27 [annotation("__out_opt")] ULONG *pcbWritten); 28 29 HRESULT RemoteWrite( 30 [in, size_is(cb)] byte const *pv, 31 [in] ULONG cb, 32 [out] ULONG *pcbWritten); 33 +/ 34 } 35 36 interface IStream : ISequentialStream 37 { 38 alias IStream LPSTREAM; 39 40 /+ TODO: ULARGE_INTEGER not found for GDC? 41 /* Storage stat buffer */ 42 struct STATSTG 43 { 44 LPOLESTR pwcsName; 45 DWORD type; 46 ULARGE_INTEGER cbSize; 47 FILETIME mtime; 48 FILETIME ctime; 49 FILETIME atime; 50 DWORD grfMode; 51 DWORD grfLocksSupported; 52 CLSID clsid; 53 DWORD grfStateBits; 54 DWORD reserved; 55 } 56 +/ 57 58 /* Storage element types */ 59 enum 60 { 61 STGTY_STORAGE = 1, 62 STGTY_STREAM = 2, 63 STGTY_LOCKBYTES = 3, 64 STGTY_PROPERTY = 4 65 } 66 alias typeof(STGTY_STORAGE) STGTY; 67 68 enum 69 { 70 STREAM_SEEK_SET = 0, 71 STREAM_SEEK_CUR = 1, 72 STREAM_SEEK_END = 2 73 } 74 alias typeof(STREAM_SEEK_SET) STREAM_SEEK; 75 76 enum 77 { 78 LOCK_WRITE = 1, 79 LOCK_EXCLUSIVE = 2, 80 LOCK_ONLYONCE = 4 81 } 82 alias typeof(LOCK_WRITE) LOCKTYPE; 83 84 /+ TODO 85 HRESULT Seek( 86 [in] LARGE_INTEGER dlibMove, 87 [in] DWORD dwOrigin, 88 [annotation("__out_opt")] ULARGE_INTEGER *plibNewPosition); 89 90 [call_as(Seek)] 91 HRESULT RemoteSeek( 92 [in] LARGE_INTEGER dlibMove, 93 [in] DWORD dwOrigin, 94 [out] ULARGE_INTEGER *plibNewPosition); 95 96 HRESULT SetSize( 97 [in] ULARGE_INTEGER libNewSize); 98 99 [local] 100 HRESULT CopyTo( 101 [in, unique] IStream *pstm, 102 [in] ULARGE_INTEGER cb, 103 [annotation("__out_opt")] ULARGE_INTEGER *pcbRead, 104 [annotation("__out_opt")] ULARGE_INTEGER *pcbWritten); 105 106 [call_as(CopyTo)] 107 HRESULT RemoteCopyTo( 108 [in, unique] IStream *pstm, 109 [in] ULARGE_INTEGER cb, 110 [out] ULARGE_INTEGER *pcbRead, 111 [out] ULARGE_INTEGER *pcbWritten); 112 113 HRESULT Commit( 114 [in] DWORD grfCommitFlags); 115 116 HRESULT Revert(); 117 118 HRESULT LockRegion( 119 [in] ULARGE_INTEGER libOffset, 120 [in] ULARGE_INTEGER cb, 121 [in] DWORD dwLockType); 122 123 HRESULT UnlockRegion( 124 [in] ULARGE_INTEGER libOffset, 125 [in] ULARGE_INTEGER cb, 126 [in] DWORD dwLockType); 127 128 HRESULT Stat( 129 [out] STATSTG *pstatstg, 130 [in] DWORD grfStatFlag); 131 132 HRESULT Clone( 133 [out] IStream **ppstm); 134 +/ 135 }