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

模拟服务器

开发平台:

C/C++

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