oledbintfuni.pas

来自「CrLab UniDAC 1.0 include sources」· PAS 代码 · 共 933 行 · 第 1/3 页

PAS
933
字号
// *********************************************************************//
// Interface: IDBCreateCommand
// GUID:      {0C733A1D-2A1C-11CE-ADE5-00AA0044773D}
// *********************************************************************//
  IDBCreateCommand = interface(IUnknown)
    ['{0C733A1D-2A1C-11CE-ADE5-00AA0044773D}']
    function CreateCommand(const punkOuter: IUnknown; const riid: TGUID;
      out ppCommand: IUnknown): HResult; stdcall;
  end;

// *********************************************************************//
// Interface: IDBCreateSession
// GUID:      {0C733A5D-2A1C-11CE-ADE5-00AA0044773D}
// *********************************************************************//
  IDBCreateSession = interface(IUnknown)
    ['{0C733A5D-2A1C-11CE-ADE5-00AA0044773D}']
    function CreateSession(const punkOuter: IUnknown; const riid: TGUID;
      out ppDBSession: IUnknown): HResult; stdcall;
  end;

// *********************************************************************//
// Interface: ISourcesRowset
// GUID:      {0C733A1E-2A1C-11CE-ADE5-00AA0044773D}
// *********************************************************************//
  ISourcesRowset = interface(IUnknown)
    ['{0C733A1E-2A1C-11CE-ADE5-00AA0044773D}']
    function GetSourcesRowset(const punkOuter: IUnknown; const riid: TGUID; cPropertySets: UINT;
      rgProperties: PDBPropSetArray; out ppSourcesRowset: IUnknown): HResult; stdcall;
  end;

// *********************************************************************//
// Interface: IDBProperties
// GUID:      {0C733A8A-2A1C-11CE-ADE5-00AA0044773D}
// *********************************************************************//
  IDBProperties = interface(IUnknown)
    ['{0C733A8A-2A1C-11CE-ADE5-00AA0044773D}']
    function GetProperties(cPropertyIDSets: UINT; rgPropertyIDSets: PDBPropIDSetArray;
      var pcPropertySets: UINT; out prgPropertySets: PDBPropSet): HResult; stdcall;
    function GetPropertyInfo(cPropertyIDSets: UINT; rgPropertyIDSets: PDBPropIDSetArray;
      var pcPropertyInfoSets: UINT; out prgPropertyInfoSets: PDBPropInfoSet;
      ppDescBuffer: PPOleStr): HResult; stdcall;
    function SetProperties(cPropertySets: UINT; rgPropertySets: PDBPropSetArray): HResult; stdcall;
  end;

// *********************************************************************//
// Interface: IDBInitialize
// GUID:      {0C733A8B-2A1C-11CE-ADE5-00AA0044773D}
// *********************************************************************//
  IDBInitialize = interface(IUnknown)
    ['{0C733A8B-2A1C-11CE-ADE5-00AA0044773D}']
    function Initialize: HResult; stdcall;
    function Uninitialize: HResult; stdcall;
  end;

// *********************************************************************//
// Interface: IDBDataSourceAdmin
// GUID:      {0C733A7A-2A1C-11CE-ADE5-00AA0044773D}
// *********************************************************************//
  IDBDataSourceAdmin = interface(IUnknown)
    ['{0C733A7A-2A1C-11CE-ADE5-00AA0044773D}']
    function CreateDataSource(cPropertySets: UINT; rgPropertySets: PDBPropSetArray;
      const punkOuter: IUnknown; const riid: TGUID; out ppDBSession: IUnknown): HResult; stdcall;
    function DestroyDataSource: HResult; stdcall;
    function GetCreationProperties(cPropertyIDSets: UINT; rgPropertyIDSets: PDBPropIDSetArray;
      pcPropertyInfoSets: PUINT; out prgPropertyInfoSets: PDBPropInfoSet;
      ppDescBuffer: PPOleStr): HResult; stdcall;
    function ModifyDataSource(cPropertySets: UINT; rgPropertySets: PDBPropSetArray): HResult; stdcall;
  end;

// *********************************************************************//
// Interface: ISessionProperties
// GUID:      {0C733A85-2A1C-11CE-ADE5-00AA0044773d}
// *********************************************************************//
  ISessionProperties = interface(IUnknown)
    ['{0C733A85-2A1C-11CE-ADE5-00AA0044773d}']
    function GetProperties(cPropertyIDSets: UINT; rgPropertyIDSets: PDBPropIDSetArray;
      var pcPropertySets: UINT; out prgPropertySets: PDBPropSet): HResult; stdcall;
    function SetProperties(cPropertySets: UINT; rgPropertySets: PDBPropSetArray): HResult; stdcall;
  end;

// *********************************************************************//
// Interface: ITransactionLocal
// GUID:      {0C733A5F-2A1C-11CE-ADE5-00AA0044773D}
// *********************************************************************//
  ITransactionLocal = interface(ITransaction)
    ['{0C733A5F-2A1C-11CE-ADE5-00AA0044773D}']
    function GetOptionsObject(out ppOptions: ITransactionOptions): HResult; stdcall;
    function StartTransaction(isoLevel: Integer; isoFlags: UINT;
      const pOtherOptions: ITransactionOptions; pulTransactionLevel: PUINT): HResult; stdcall;
  end;

// *********************************************************************//
// Interface: ITransactionJoin
// GUID:      {0C733A5E-2A1C-11CE-ADE5-00AA0044773D}
// *********************************************************************//
   ITransactionJoin = interface(IUnknown)
   ['{0C733A5E-2A1C-11CE-ADE5-00AA0044773D}']
     function GetOptionsObject(out ppOptions: ITransactionOptions): HResult; stdcall;
     function JoinTransaction(const punkTransactionCoord: IUnknown; isoLevel: Integer;
       isoFlags: UINT; const pOtherOptions: ITransactionOptions): HResult; stdcall;
   end;

// *********************************************************************//
// Interface: IDBPromptInitialize
// GUID:      {2206CCB0-19C1-11D1-89E0-00C04FD7A829}
// *********************************************************************//
  IDBPromptInitialize = interface(IUnknown)
    ['{2206CCB0-19C1-11D1-89E0-00C04FD7A829}']
    function PromptDataSource(const pUnkOuter: IUnknown; hWndParent: HWND;
      dwPromptOptions: DBPROMPTOPTIONS; cSourceTypeFilter: ULONG;
      rgSourceTypeFilter: PDBSOURCETYPE; pszProviderFilter: POleStr;
      const riid: TIID; var DataSource: IUnknown): HResult; stdcall;
    function PromptFileName(hWndParent: HWND; dwPromptOptions: DBPROMPTOPTIONS;
      pwszInitialDirectory, pwszInitialFile: POleStr;
      var ppwszSelectedFile: POleStr): HResult; stdcall;
  end;

// *********************************************************************//
// Interface: IDataInitialize
// GUID:      {2206CCB1-19C1-11D1-89E0-00C04FD7A829}
// *********************************************************************//
  IDataInitialize = interface(IUnknown)
    ['{2206CCB1-19C1-11D1-89E0-00C04FD7A829}']
    function GetDataSource(
      const pUnkOuter: IUnknown; 
      dwClsCtx: DWORD;
      pwszInitializationString: POleStr; 
      const riid: TIID;
      var DataSource: IUnknown): HResult; stdcall;
    function GetInitializationString(
      const DataSource: IUnknown;
      fIncludePassword: Boolean; 
      out pwszInitString: POleStr): HResult; stdcall;
    function CreateDBInstance(const clsidProvider: TGUID;
      const pUnkOuter: IUnknown; 
      dwClsCtx: DWORD; pwszReserved: POleStr;
      riid: TIID; 
      var DataSource: IUnknown): HResult; stdcall;
    function CreateDBInstanceEx(
      const clsidProvider: TGUID;
      const pUnkOuter: IUnknown; 
      dwClsCtx: DWORD; 
      pwszReserved: POleStr;
      pServerInfo: PCoServerInfo; 
      cmq: ULONG; 
      rgmqResults: PMultiQI): HResult; stdcall;
    function LoadStringFromStorage(
      pwszFileName: POleStr;
      out pwszInitializationString: POleStr): HResult; stdcall;
    function WriteStringToStorage(
      pwszFileName, pwszInitializationString: POleStr;
      dwCreationDisposition: DWORD): HResult; stdcall;
  end;

  IDBSchemaRowset = interface (IUnknown)
    ['{0c733a7b-2a1c-11ce-ade5-00aa0044773d}']
    function GetRowset (const pUnkOuter: IUnknown; const rguidSchema: TGUID;
      cRestrictions: UINT; rgRestrictions: PVariantArray; const riid: TGUID;
      cPropertySets: UINT; rgPropertySets: PDBPropSetArray;
      out ppRowset: IUnknown): HResult; stdcall;
    function GetSchemas (out pcSchemas: UINT; out prgSchemas: PGUIDArray;
      prgRestrictionSupport: PUINTArray): HResult; stdcall;
  end;

  IOpenRowset = interface(IUnknown)
    ['{0c733a69-2a1c-11ce-ade5-00aa0044773d}']
    function OpenRowset(const punkOuter: IUnknown; pTableID: PDBID;
      pIndexID: PDBID; const riid: TGUID; cPropertySets: UINT;
      rgPropertySets: PDBPropIDSetArray; out ppReferencedRowset: IUnknown): HRESULT; stdcall;
  end;
  
  IRowsetFastLoad = interface(IUnknown)
    ['{5CF4CA13-EF21-11d0-97E7-00C04FC2AD98}']
    function InsertRow(HACCESSOR: HACCESSOR; pData: Pointer): HRESULT; stdcall;
    function Commit(fDone: boolean): HRESULT; stdcall;
  end;

  IDBAsynchStatus = interface(IUnknown)
    ['{0c733a95-2a1c-11ce-ade5-00aa0044773d}']
    function Abort(Chapter: HCHAPTER; Operation: DBASYNCHOP): HRESULT; stdcall;
    function GetStatus(Chapter: HCHAPTER; Operation: DBASYNCHOP; var Progress: UINT;
      var ProgressMax: UINT; var AsynchPhase: DWORD; var StatusText: PWideChar): HRESULT; stdcall;
  end;

  ISSAsynchStatus = interface(IDBAsynchStatus)
    ['{1FF1F743-8BB0-4c00-ACC4-C10E43B08FC1}']
    function WaitForAsynchCompletion(MillisecTimeOut: DWORD): HRESULT; stdcall;
  end;

  IErrorRecords = interface (IUnknown)
    ['{0c733a67-2a1c-11ce-ade5-00aa0044773d}']
    function (* [local] *) AddErrorRecord(
            (* [in] *) const pErrorInfo: ERRORINFO;
            (* [in] *) dwLookupID: DWORD;
            (* [in] *) const pdispparams: DISPPARAMS;
            (* [in] *) const punkCustomError: IUnknown;
            (* [in] *) dwDynamicErrorID: DWORD): HResult; stdcall;
        
    function (* [local] *) GetBasicErrorInfo( 
            (* [in] *) ulRecordNum: ULONG;
            (* [out] *) out pErrorInfo: ERRORINFO): HResult; stdcall;

    function (* [local] *) GetCustomErrorObject( 
            (* [in] *) ulRecordNum: ULONG;
            (* [in] *) const riid: TGUID;
            (* [iid_is][out] *) out ppObject: IUnknown): HResult; stdcall;
        
    function (* [local] *) GetErrorInfo( 
            (* [in] *) ulRecordNum: ULONG;
            (* [in] *) lcid: LCID;
            (* [out] *) out ppErrorInfo: IErrorInfo): HResult; stdcall;
        
    function (* [local] *) GetErrorParameters( 
            (* [in] *) ulRecordNum: ULONG;
            (* [out] *) out pdispparams: DISPPARAMS): HResult; stdcall;
        
    function (* [local] *) GetRecordCount( 
            (* [out] *) out pcRecords: ULONG): HResult; stdcall;
  end;
  {$EXTERNALSYM IErrorRecords}

// the structure returned by  ISQLServerErrorInfo::GetSQLServerInfo
  SSERRORINFO_ = record
    pwszMessage: PWideChar;
    pwszServer: PWideChar;
    pwszProcedure: PWideChar;
    lNative: integer;
    bState: BYTE;
    bClass: BYTE;
    wLineNumber: WORD;
  end;
  SSERRORINFO = record
    pwszMessage: WideString;
    pwszServer: WideString;
    pwszProcedure: WideString;
    lNative: integer;
    bState: BYTE;
    bClass: BYTE;
    wLineNumber: WORD;
  end;
  PSSERRORINFO = ^SSERRORINFO_;


type
  ISQLServerErrorInfo = interface (IUnknown)
    function GetErrorInfo( 
            (* [out] *) out ppErrorInfo: PSSERRORINFO;
            (* [out] *) out ppStringsBuffer: IntPtr{PWideChar}): HResult; stdcall;
  end;

  /// WARINING - in 64bit OSes DBBKMARK is int64
  DBBKMARK = integer;

// Multi Language support
type
  IEnumCodePage = interface(IUnknown)
  ['{275c23e3-3747-11d0-9fea-00aa003f8646}']
    function Clone(out ppEnum: IEnumCodePage): HResult; stdcall;
    function Next(celt: ULONG; var rgelt: MIMECPINFO; var pceltFetched: ULONG): HResult; stdcall;
    function Reset: HResult; stdcall;
    function Skip(celt: ULONG): HResult; stdcall;
  end;

  IEnumRfc1766 = interface(IUnknown)
  ['{3dc39d1d-c030-11d0-b81b-00c04fc9b31f}']
    function Clone(out ppEnum: IEnumRfc1766): HResult; stdcall;
    function Next(celt: ULONG; var rgelt: RFC1766INFO; var pceltFetched: ULONG): HResult; stdcall;
    function Reset: HResult; stdcall;
    function Skip(celt: ULONG): HResult; stdcall;
  end;

  IMLangConvertCharset = interface(IUnknown)
  ['{D66D6F98-CDAA-11D0-B822-00C04FC9B31F}']
    function Initialize(uiSrcCodePage: UINT; uiDstCodePage: UINT; dwProperty: DWORD): HResult; stdcall;
    function GetSourceCodePage(var puiSrcCodePage: UINT): HResult; stdcall;
    function GetDestinationCodePage(var puiDstCodePage: UINT): HResult; stdcall;
    function GetProperty(var pdwProperty: DWORD): HResult; stdcall;
    function DoConversion(pSrcStr: PBYTE; var pcSrcSize: UINT; pDstStr: PBYTE; var pcDstSize: UINT): HResult; stdcall;
    function DoConversionToUnicode(pSrcStr: PChar; var pcSrcSize: UINT; pDstStr: PWideChar; var pcDstSize: UINT): HResult; stdcall;
    function DoConversionFromUnicode(pSrcStr: PWideChar; var pcSrcSize: UINT; pDstStr: PChar; var pcDstSize: UINT): HResult; stdcall;
  end;

  IMultiLanguage = interface(IUnknown)
  ['{275C23E1-3747-11D0-9FEA-00AA003F8646}']
    function GetNumberOfCodePageInfo(var pcCodePage: UINT): HResult; stdcall;
    function GetCodePageInfo(uiCodePage: UINT; var pCodePageInfo: MIMECPINFO): HResult; stdcall;
    function GetFamilyCodePage(uiCodePage: UINT; var puiFamilyCodePage: UINT): HResult; stdcall;
    function EnumCodePages(grfFlags: DWORD; out ppEnumCodePage: IEnumCodePage): HResult; stdcall;
    function GetCharsetInfo(Charset: PWideChar; var pCharsetInfo: MIMECSETINFO): HResult; stdcall;
    function IsConvertible(dwSrcEncoding: DWORD; dwDstEncoding: DWORD): HResult; stdcall;
    function ConvertString(var pdwMode: DWORD; dwSrcEncoding: DWORD; dwDstEncoding: DWORD;
      pSrcStr: PBYTE; var pcSrcSize: UINT; pDstStr: PBYTE; var pcDstSize: UINT): HResult; stdcall;
    function ConvertStringToUnicode(var pdwMode: DWORD; dwEncoding: DWORD; pSrcStr: PChar;
      var pcSrcSize: UINT; pDstStr: PWideChar; var pcDstSize: UINT): HResult; stdcall;
    function ConvertStringFromUnicode(var pdwMode: DWORD; dwEncoding: DWORD; pSrcStr: PWideChar;
      var pcSrcSize: UINT; pDstStr: PChar; var pcDstSize: UINT): HResult; stdcall;
    function ConvertStringReset: HResult; stdcall;
    function GetRfc1766FromLcid(Locale: LCID; var pbstrRfc1766: WideChar): HResult; stdcall;
    function EnumRfc1766(out ppEnumRfc1766: IEnumRfc1766): HResult; stdcall;
    function GetRfc1766Info(Locale: LCID; var pRfc1766Info: RFC1766INFO): HResult; stdcall;
    function CreateConvertCharset(uiSrcCodePage: UINT; uiDstCodePage: UINT; dwProperty: DWORD;
      out ppMLangConvertCharset: IMLangConvertCharset): HResult; stdcall;
  end;
  
implementation

initialization
  Assert(SizeOf(DBProp) = SizeOfDBProp);

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?