scpops.idl 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  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. };