access.idl 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. //-----------------------------------------------------------------------------
  2. // File: access.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. //
  13. REMOTED_INTERFACE(0c733a8c-2a1c-11ce-ade5-00aa0044773d)
  14. interface IAccessor : IUnknown {
  15. typedef DWORD DBACCESSORFLAGS;
  16. enum DBACCESSORFLAGSENUM {
  17. DBACCESSOR_INVALID = 0x000,
  18. DBACCESSOR_PASSBYREF = 0x001,
  19. DBACCESSOR_ROWDATA = 0x002,
  20. DBACCESSOR_PARAMETERDATA = 0x004,
  21. DBACCESSOR_OPTIMIZED = 0x008,
  22. DBACCESSOR_INHERITED = 0x010,
  23. };
  24. typedef DWORD DBBINDSTATUS;
  25. enum DBBINDSTATUSENUM {
  26. DBBINDSTATUS_OK = 0,
  27. DBBINDSTATUS_BADORDINAL = 1,
  28. DBBINDSTATUS_UNSUPPORTEDCONVERSION = 2,
  29. DBBINDSTATUS_BADBINDINFO = 3,
  30. DBBINDSTATUS_BADSTORAGEFLAGS = 4,
  31. DBBINDSTATUS_NOINTERFACE = 5,
  32. DBBINDSTATUS_MULTIPLESTORAGE = 6,
  33. };
  34. [local]
  35. HRESULT AddRefAccessor(
  36. [in] HACCESSOR hAccessor,
  37. [in, out, unique] DBREFCOUNT * pcRefCount
  38. );
  39. [call_as(AddRefAccessor)]
  40. HRESULT RemoteAddRefAccessor(
  41. [in] HACCESSOR hAccessor,
  42. [in, out, unique] DBREFCOUNT * pcRefCount,
  43. [out] IErrorInfo ** ppErrorInfoRem
  44. );
  45. [local]
  46. HRESULT CreateAccessor(
  47. [in] DBACCESSORFLAGS dwAccessorFlags,
  48. [in] DBCOUNTITEM cBindings,
  49. [in, size_is(cBindings)] const DBBINDING rgBindings[],
  50. [in] DBLENGTH cbRowSize,
  51. [out] HACCESSOR * phAccessor,
  52. [out, size_is(cBindings)] DBBINDSTATUS rgStatus[]
  53. );
  54. #ifndef NO_REMOTE
  55. [call_as(CreateAccessor)]
  56. HRESULT RemoteCreateAccessor(
  57. [in] DBACCESSORFLAGS dwAccessorFlags,
  58. [in] DBCOUNTITEM cBindings,
  59. [in, unique, size_is((ULONG)cBindings)] DBBINDING *rgBindings,
  60. [in] DBLENGTH cbRowSize,
  61. [out] HACCESSOR * phAccessor,
  62. [in, out, unique, size_is((ULONG)cBindings)] DBBINDSTATUS *rgStatus,
  63. [out] IErrorInfo ** ppErrorInfoRem
  64. );
  65. #endif
  66. [local]
  67. HRESULT GetBindings(
  68. [in] HACCESSOR hAccessor,
  69. [out] DBACCESSORFLAGS * pdwAccessorFlags,
  70. [in, out] DBCOUNTITEM * pcBindings,
  71. [out, size_is(,(ULONG)*pcBindings)] DBBINDING ** prgBindings
  72. );
  73. #ifndef NO_REMOTE
  74. [call_as(GetBindings)]
  75. HRESULT RemoteGetBindings(
  76. [in] HACCESSOR hAccessor,
  77. [out] DBACCESSORFLAGS * pdwAccessorFlags,
  78. [in, out] DBCOUNTITEM * pcBindings,
  79. [out, size_is(,(ULONG)*pcBindings)] DBBINDING ** prgBindings,
  80. [out] IErrorInfo ** ppErrorInfoRem
  81. );
  82. #endif
  83. [local]
  84. HRESULT ReleaseAccessor(
  85. [in] HACCESSOR hAccessor,
  86. [in, out, unique] DBREFCOUNT * pcRefCount
  87. );
  88. [call_as(ReleaseAccessor)]
  89. HRESULT RemoteReleaseAccessor(
  90. [in] HACCESSOR hAccessor,
  91. [in, out, unique] DBREFCOUNT * pcRefCount,
  92. [out] IErrorInfo ** ppErrorInfoRem
  93. );
  94. }