scpops.idl
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:5k
源码类别:

模拟服务器

开发平台:

C/C++

  1. //-----------------------------------------------------------------------------
  2. // File: scpops.idl
  3. //
  4. // Copyright: Copyright (c) Microsoft Corporation          
  5. //
  6. // Contents:  OLE DB interface definition
  7. //
  8. // Comments: 
  9. //
  10. //-----------------------------------------------------------------------------
  11. #include "idlmulti.h"
  12. REMOTED_INTERFACE(0c733ab0-2a1c-11ce-ade5-00aa0044773d)
  13. interface IScopedOperations : IBindResource
  14. {
  15.     typedef DWORD DBCOPYFLAGS;
  16.     enum DBCOPYFLAGSENUM {
  17.         DBCOPY_ASYNC                = 0x00000100,
  18.         DBCOPY_REPLACE_EXISTING     = 0x00000200,
  19.     DBCOPY_ALLOW_EMULATION      = 0x00000400,
  20.         DBCOPY_NON_RECURSIVE        = 0x00000800,
  21.         DBCOPY_ATOMIC               = 0x00001000
  22.         };
  23.     typedef DWORD DBMOVEFLAGS;
  24.     enum DBMOVEFLAGSENUM {
  25.         DBMOVE_REPLACE_EXISTING     = 0x00000001,
  26.         DBMOVE_ASYNC                = 0x00000100,
  27.     DBMOVE_DONT_UPDATE_LINKS    = 0x00000200,
  28.     DBMOVE_ALLOW_EMULATION     = 0x00000400,
  29.         DBMOVE_ATOMIC               = 0x00001000
  30.         };
  31.     typedef DWORD DBDELETEFLAGS;
  32.     enum DBDELETEFLAGSENUM {
  33.         DBDELETE_ASYNC              = 0x00000100,
  34.         DBDELETE_ATOMIC             = 0x00001000
  35.         };
  36. [local]
  37. HRESULT Copy(
  38.     [in]                            DBCOUNTITEM     cRows,
  39.     [in, size_is((ULONG)cRows)]            LPCOLESTR       rgpwszSourceURLs[],
  40.     [in, size_is((ULONG)cRows)]            LPCOLESTR       rgpwszDestURLs[],
  41.     [in]                            DWORD           dwCopyFlags,
  42. [in, unique]                    IAuthenticate*  pAuthenticate,
  43.     [in, out, size_is((ULONG)cRows)]       DBSTATUS        rgdwStatus[],
  44. [out, size_is((ULONG)cRows)] LPOLESTR rgpwszNewURLs[],
  45. [out] OLECHAR **ppStringsBuffer
  46.     );
  47. #ifndef NO_REMOTE
  48. [call_as(Copy)]
  49. HRESULT RemoteCopy(
  50. [in] DBCOUNTITEM cRows,
  51. [in, size_is((ULONG)cRows)] LPCOLESTR * rgpwszSourceURLs,
  52. [in, size_is((ULONG)cRows)] LPCOLESTR * rgpwszDestURLs,
  53. [in] DWORD dwCopyFlags,
  54. [in] IAuthenticate * pAuthenticate,
  55. [out, size_is((ULONG)cRows)] DBSTATUS * rgdwStatus,
  56. [out, size_is(,(ULONG)cRows)] DBBYTEOFFSET ** prgulNewURLOffsets,
  57. [in, out] ULONG * pcbStringsBuffer,
  58. [in, out, unique, size_is(,*pcbStringsBuffer)] OLECHAR ** ppStringsBuffer
  59. );
  60. #endif
  61. [local]
  62. HRESULT Move(
  63.     [in]                            DBCOUNTITEM     cRows,
  64.     [in, size_is((ULONG)cRows)]            LPCOLESTR       rgpwszSourceURLs[],
  65.     [in, size_is((ULONG)cRows)]            LPCOLESTR       rgpwszDestURLs[],
  66.     [in]                            DWORD           dwMoveFlags,
  67. [in, unique]                    IAuthenticate*  pAuthenticate,
  68.     [in, out, size_is((ULONG)cRows)]       DBSTATUS        rgdwStatus[],
  69. [out, size_is((ULONG)cRows)] LPOLESTR rgpwszNewURLs[],
  70. [out] OLECHAR **ppStringsBuffer
  71.     );
  72. #ifndef NO_REMOTE
  73. [call_as(Move)]
  74. HRESULT RemoteMove(
  75. [in] DBCOUNTITEM cRows,
  76. [in, size_is((ULONG)cRows)] LPCOLESTR * rgpwszSourceURLs,
  77. [in, size_is((ULONG)cRows)] LPCOLESTR * rgpwszDestURLs,
  78. [in] DWORD dwMoveFlags,
  79. [in] IAuthenticate * pAuthenticate,
  80. [out, size_is((ULONG)cRows)] DBSTATUS * rgdwStatus,
  81. [out, size_is(,(ULONG)cRows)] DBBYTEOFFSET ** prgulNewURLOffsets,
  82. [in, out] ULONG * pcbStringsBuffer,
  83. [in, out, unique, size_is(,*pcbStringsBuffer)] OLECHAR ** ppStringsBuffer
  84. );
  85. #endif
  86. [local]
  87. HRESULT Delete (
  88.     [in]                            DBCOUNTITEM           cRows,
  89.     [in, size_is((ULONG)cRows)]            LPCOLESTR       rgpwszURLs[],
  90.     [in]                            DWORD           dwDeleteFlags,
  91.     [in, out, size_is((ULONG)cRows)]       DBSTATUS        rgdwStatus[]
  92.     );
  93. #ifndef NO_REMOTE
  94. [call_as(Delete)]
  95. HRESULT RemoteDelete(
  96. [in] DBCOUNTITEM cRows,
  97. [in, size_is((ULONG)cRows)] LPCOLESTR * rgpwszURLs,
  98. [in] DWORD dwDeleteFlags,
  99. [out, size_is((ULONG)cRows)] DBSTATUS * rgdwStatus
  100. );
  101. #endif
  102. [local]
  103. HRESULT OpenRowset(
  104. [in] IUnknown *pUnkOuter,
  105. [in, unique] DBID *pTableID,
  106. [in, unique] DBID *pIndexID,
  107. [in] REFIID riid,
  108. [in] ULONG cPropertySets,
  109. [in, out, size_is(cPropertySets)] DBPROPSET rgPropertySets[],
  110. [out, iid_is(riid)] IUnknown **ppRowset
  111. );
  112. #ifndef NO_REMOTE
  113. [call_as(OpenRowset)]
  114. HRESULT RemoteOpenRowset(
  115. [in] IUnknown * pUnkOuter,
  116. [in, unique] DBID * pTableID,
  117. [in, unique] DBID * pIndexID,
  118. [in] REFIID riid,
  119. [in] ULONG cPropertySets,
  120. [in, unique, size_is(cPropertySets)] DBPROPSET * rgPropertySets,
  121. [in, out, unique, iid_is(riid)] IUnknown ** ppRowset,
  122. [in] ULONG cTotalProps,
  123. [out, size_is(cTotalProps)] DBPROPSTATUS * rgPropStatus
  124. );
  125. #endif
  126. };