Publish date: 2023-01-25

Work with IBProvider via LcpiComApiProvider (C#, FB)

It is the demonstration of work with IBProvider through lcpi.lib.com.ComApiProvider. Here «LCPI Easy COM» is used as the implementation of «LCPI COM API».

You can find the ready project in the folder «c:\Program Files (x86)\LCPI\OleDb.NET\[provider version]\Samples\Collection_001\Sample_0031__UsingLcpiComApi» of «LCPI ADO.NET Provider for OLE DB» installed files.

Here is is recommended to read an article «IBProvider and LCPI COM API», too.

A configuration file for 32-bit executing processes:

<!--

     LCPI Easy COM Settings [32bit].

     It is a sample which defines LcpiEasyCom settings for using:
      - LCPI.IBProvider.5
      - LCPI.IBProvider.5.Free
      - LCPI.IBProvider.5.Private.vc17.release
      - LCPI.IBProvider.5.Private.vc17.debug
      - LCPI.OleDbServices.DataInitManager.Global.1
      - LCPI.OleDbServices.DataInitManager.Local.1
      - LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.release
      - LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.debug
      - MSDASC.MSDAINITIALIZE.1

     Additional aliases:
      - LCPI.IBProvider
      - LCPI.OleDbServices.DataInitManager.Global
      - LCPI.OleDbServices.DataInitManager.Local
      - MSDASC.MSDAINITIALIZE

     There
      - "MSDAINITIALIZE" is mapped with "LCPI OLE DB Services".

     It is expected that the binaries of these components are presented at the same folder with this settings-file:
      - lcpi.ibprovider-v5_vc17_w32_prof_i.dll
      - lcpi.ibprovider-v5_vc17_w32_prof_d.dll
      - lcpi.ibprovider-v5_vc17_w32_free_i.dll
      - lcpi.oledb_services-v1_vc17_w32_prof_i.dll
      - lcpi.oledb_services-v1_vc17_w32_prof_d.dll

     You can adapt this file for your project.

-->

<ECM Version="1.0">
 <Registry>
  <Key Name="HKCR">
   <!-- ++++++++++++++++++++++++++ CLSIDs ++++++++++++++++++++++++++++++++ -->

   <Key Name="CLSID">

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{769A12A0-04BF-11D8-AE8B-00A0C907DB93}">
     <Value Name="">LCPI.IBProvider.5</Value>

     <Value Name="OLE DB Services" Type="ui4">0xFFFFFFFF</Value>

     <Value Name="flush_log_period" Type="ui4">0</Value>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{769A12A1-04BF-11D8-AE8B-00A0C907DB93}">LCPI.IBProvider Error Lookup [v5]</Key>
     </Key>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w32_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ProgID">LCPI.IBProvider.5</Key>

     <Key Name="VersionIndependentProgID">LCPI.IBProvider</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{769A12AC-04BF-11D8-AE8B-00A0C907DB93}">
     <Value Name="">LCPI.IBProvider.5.Free</Value>

     <Value Name="OLE DB Services" Type="ui4">0xFFFFFFFF</Value>

     <Value Name="flush_log_period" Type="ui4">0</Value>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{769A12AD-04BF-11D8-AE8B-00A0C907DB93}">LCPI.IBProvider Lookup [v5][Free]</Key>
     </Key>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w32_free_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ProgID">LCPI.IBProvider.5.Free</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{4954F76F-5620-4B90-BE4D-61EC6940B803}">
     <Value Name="">LCPI.IBProvider.5.Private.vc17.release</Value>

     <Value Name="OLE DB Services" Type="ui4">0xFFFFFFFF</Value>

     <Value Name="flush_log_period" Type="ui4">0</Value>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{550141E6-CDA8-4210-B7EB-7F7D9D9C4EF6}">LCPI.IBProvider Error Lookup [v5] [Private.Release]</Key>
     </Key>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w32_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ProgID">LCPI.IBProvider.5.Private.vc17.release</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{9D75E160-94FB-4540-B117-3D68C45919C4}">
     <Value Name="">LCPI.IBProvider.5.Private.vc17.debug</Value>

     <Value Name="OLE DB Services" Type="ui4">0xFFFFFFFF</Value>

     <Value Name="flush_log_period" Type="ui4">0</Value>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{6B4BA676-3EE1-4C44-8EF9-A29B27890DB8}">LCPI.IBProvider Error Lookup [v5] [Private.Debug]</Key>
     </Key>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w32_prof_d.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ProgID">LCPI.IBProvider.5.Private.vc17.debug</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{769A12A1-04BF-11D8-AE8B-00A0C907DB93}">
     <Value Name="">LCPI.IBProvider Error Lookup [v5]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w32_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{769A12AD-04BF-11D8-AE8B-00A0C907DB93}">
     <Value Name="">LCPI.IBProvider Error Lookup [v5][Free]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w32_freee_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{550141E6-CDA8-4210-B7EB-7F7D9D9C4EF6}">
     <Value Name="">LCPI.IBProvider Error Lookup [v5] [Private.Release]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w32_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{6B4BA676-3EE1-4C44-8EF9-A29B27890DB8}">
     <Value Name="">LCPI.IBProvider Error Lookup [v5] [Private.Debug]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w32_prof_d.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{40AD5FB6-0804-11E7-964E-2C56DC394BFA}">
     <Value Name="">LCPI.OleDbServices.DataInitManager.Global.1</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w32_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{40AD5FB5-0804-11E7-964E-2C56DC394BFA}">LCPI OLE DB Services Error Lookup [v1]</Key>
     </Key>

     <Key Name="ProgID">LCPI.OleDbServices.DataInitManager.Global.1</Key>

     <Key Name="VersionIndependentProgID">LCPI.OleDbServices.DataInitManager.Global</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{40AD5FB8-0804-11E7-964E-2C56DC394BFA}">
     <Value Name="">LCPI.OleDbServices.DataInitManager.Local.1</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w32_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{40AD5FB5-0804-11E7-964E-2C56DC394BFA}">LCPI OLE DB Services Error Lookup [v1]</Key>
     </Key>

     <Key Name="ProgID">LCPI.OleDbServices.DataInitManager.Local.1</Key>

     <Key Name="VersionIndependentProgID">LCPI.OleDbServices.DataInitManager.Local</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{2206CDB0-19C1-11D1-89E0-00C04FD7A829}">
     <Value Name="">MSDASC.MSDAINITIALIZE.1 [LCPI]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w32_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{40AD5FB5-0804-11E7-964E-2C56DC394BFA}">LCPI OLE DB Services Error Lookup [v1]</Key>
     </Key>

     <Key Name="ProgID">MSDASC.MSDAINITIALIZE.1</Key>

     <Key Name="VersionIndependentProgID">MSDASC.MSDAINITIALIZE</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{CCB4EC60-B9DC-11D1-AC80-00A0C9034873}">
     <Value Name="">MSDASC.PDPO.1 [LCPI]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w32_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{40AD5FB5-0804-11E7-964E-2C56DC394BFA}">LCPI OLE DB Services Error Lookup [v1]</Key>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{4888EE9F-A34B-4870-A731-D26A1FB2B24E}">
     <Value Name="">LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.release</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w32_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{CF3EB002-4D77-49B0-8C6B-695B692CE958}">LCPI OLE DB Services Error Lookup [v1] [Private.Release]</Key>
     </Key>

     <Key Name="ProgID">LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.release</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{FF8BDE90-4FAE-4AE8-A618-C781C89982B7}">
     <Value Name="">LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.debug</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w32_prof_d.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{55CEEA41-B34E-4F09-A4B4-C8057DCBF13A}">LCPI OLE DB Services Error Lookup [v1] [Private.Debug]</Key>
     </Key>

     <Key Name="ProgID">LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.debug</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{40AD5FB5-0804-11E7-964E-2C56DC394BFA}">
     <Value Name="">LCPI OLE DB Services Error Lookup [v1]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w32_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{CF3EB002-4D77-49B0-8C6B-695B692CE958}">
     <Value Name="">LCPI OLE DB Services Error Lookup [v1] [Private.Release]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w32_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- PRIVATE -->
    <Key Name="{55CEEA41-B34E-4F09-A4B4-C8057DCBF13A}">
     <Value Name="">LCPI OLE DB Services Error Lookup [v1] [Private.Debug]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w32_prof_d.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

   </Key> <!-- /CLSID -->

   <!-- +++++++++++++++++++++++++ PROG IDs +++++++++++++++++++++++++++++++ -->

   <Key Name="LCPI.IBProvider.5">
    <Value Name="">LCPI OLE DB Provider for InterBase [v5]</Value>
    <Key Name="CLSID">{769A12A0-04BF-11D8-AE8B-00A0C907DB93}</Key>
   </Key>

   <Key Name="LCPI.IBProvider">
    <Value Name="">LCPI OLE DB Provider for InterBase [v5]</Value>
    <Key Name="CurVer">LCPI.IBProvider.5</Key>
   </Key>

   <Key Name="LCPI.IBProvider.5.Free">
    <Value Name="">LCPI OLE DB Provider for InterBase [v5][Free]</Value>
    <Key Name="CLSID">{769A12AC-04BF-11D8-AE8B-00A0C907DB93}</Key>
   </Key>

   <Key Name="LCPI.IBProvider.5.Private.vc17.release">
    <Key Name="CLSID">{4954F76F-5620-4B90-BE4D-61EC6940B803}</Key>
   </Key>

   <Key Name="LCPI.IBProvider.5.Private.vc17.debug">
    <Key Name="CLSID">{9D75E160-94FB-4540-B117-3D68C45919C4}</Key>
   </Key>

   <Key Name="LCPI.OleDbServices.DataInitManager.Global.1">
    <Value Name="">LCPI OLE DB Services. Connection Initializer [Global].</Value>
    <Key Name="CLSID">{40AD5FB6-0804-11E7-964E-2C56DC394BFA}</Key>
   </Key>

   <Key Name="LCPI.OleDbServices.DataInitManager.Global">
    <Value Name="">LCPI OLE DB Services. Connection Initializer [Global].</Value>
    <Key Name="CurVer">LCPI.OleDbServices.DataInitManager.Global.1</Key>
   </Key>

   <Key Name="LCPI.OleDbServices.DataInitManager.Local.1">
    <Value Name="">LCPI OLE DB Services. Connection Initializer [Local].</Value>
    <Key Name="CLSID">{40AD5FB8-0804-11E7-964E-2C56DC394BFA}</Key>
   </Key>

   <Key Name="LCPI.OleDbServices.DataInitManager.Local">
    <Value Name="">LCPI OLE DB Services. Connection Initializer [Local].</Value>
    <Key Name="CurVer">LCPI.OleDbServices.DataInitManager.Local.1</Key>
   </Key>

   <Key Name="MSDASC.MSDAINITIALIZE.1">
    <Value Name="">LCPI OLE DB Services. Connection Initializer [MSDAINITIALIZE].</Value>
    <Key Name="CLSID">{2206CDB0-19C1-11D1-89E0-00C04FD7A829}</Key>
   </Key>

   <Key Name="MSDASC.MSDAINITIALIZE">
    <Value Name="">LCPI OLE DB Services. Connection Initializer [MSDAINITIALIZE].</Value>
    <Key Name="CurVer">MSDASC.MSDAINITIALIZE.1</Key>
   </Key>

   <Key Name="LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.release">
    <Key Name="CLSID">{4888EE9F-A34B-4870-A731-D26A1FB2B24E}</Key>
   </Key>

   <Key Name="LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.debug">
    <Key Name="CLSID">{FF8BDE90-4FAE-4AE8-A618-C781C89982B7}</Key>
   </Key>

   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
  </Key>
 </Registry>
</ECM>

A configuration file for 64-bit executing processes:

<!--

     LCPI Easy COM Settings [64bit].

     It is a sample which defines LcpiEasyCom settings for using:
      - LCPI.IBProvider.5
      - LCPI.IBProvider.5.Free
      - LCPI.IBProvider.5.Private.vc17.release
      - LCPI.IBProvider.5.Private.vc17.debug
      - LCPI.OleDbServices.DataInitManager.Global.1
      - LCPI.OleDbServices.DataInitManager.Local.1
      - LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.release
      - LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.debug
      - MSDASC.MSDAINITIALIZE.1

     Additional aliases:
      - LCPI.IBProvider
      - LCPI.OleDbServices.DataInitManager.Global
      - LCPI.OleDbServices.DataInitManager.Local
      - MSDASC.MSDAINITIALIZE

     There
      - "MSDAINITIALIZE" is mapped with "LCPI OLE DB Services".

     It is expected that the binaries of these components are presented at the same folder with this settings-file:
      - lcpi.ibprovider-v5_vc17_w64_prof_i.dll
      - lcpi.ibprovider-v5_vc17_w64_prof_d.dll
      - lcpi.ibprovider-v5_vc17_w64_free_i.dll
      - lcpi.oledb_services-v1_vc17_w64_prof_i.dll
      - lcpi.oledb_services-v1_vc17_w64_prof_d.dll

     You can adapt this file for your project.

-->

<ECM Version="1.0">
 <Registry>
  <Key Name="HKCR">
   <!-- ++++++++++++++++++++++++++ CLSIDs ++++++++++++++++++++++++++++++++ -->

   <Key Name="CLSID">

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{769A12A0-04BF-11D8-AE8B-00A0C907DB93}">
     <Value Name="">LCPI.IBProvider.5</Value>

     <Value Name="OLE DB Services" Type="ui4">0xFFFFFFFF</Value>

     <Value Name="flush_log_period" Type="ui4">0</Value>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{769A12A1-04BF-11D8-AE8B-00A0C907DB93}">LCPI.IBProvider Error Lookup [v5]</Key>
     </Key>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w64_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ProgID">LCPI.IBProvider.5</Key>

     <Key Name="VersionIndependentProgID">LCPI.IBProvider</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{769A12AC-04BF-11D8-AE8B-00A0C907DB93}">
     <Value Name="">LCPI.IBProvider.5.Free</Value>

     <Value Name="OLE DB Services" Type="ui4">0xFFFFFFFF</Value>

     <Value Name="flush_log_period" Type="ui4">0</Value>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{769A12AD-04BF-11D8-AE8B-00A0C907DB93}">LCPI.IBProvider Lookup [v5][Free]</Key>
     </Key>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w64_free_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ProgID">LCPI.IBProvider.5.Free</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{B1F5221E-6135-490B-8FD8-7BB8A1EBB775}">
     <Value Name="">LCPI.IBProvider.5.Private.vc17.release</Value>

     <Value Name="OLE DB Services" Type="ui4">0xFFFFFFFF</Value>

     <Value Name="flush_log_period" Type="ui4">0</Value>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{A8E8B9E6-F7C4-4126-B572-0C675A4BB9DE}">LCPI.IBProvider Error Lookup [v5] [Private.Release]</Key>
     </Key>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w64_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ProgID">LCPI.IBProvider.5.Private.vc17.release</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{EE5D1409-7217-4F6A-83AD-8A865DC2BA3C}">
     <Value Name="">LCPI.IBProvider.5.Private.vc17.debug</Value>

     <Value Name="OLE DB Services" Type="ui4">0xFFFFFFFF</Value>

     <Value Name="flush_log_period" Type="ui4">0</Value>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{EC1206D8-0C97-4C72-B84B-B8E92406126D}">LCPI.IBProvider Error Lookup [v5] [Private.Debug]</Key>
     </Key>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w64_prof_d.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ProgID">LCPI.IBProvider.5.Private.vc17.debug</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{769A12A1-04BF-11D8-AE8B-00A0C907DB93}">
     <Value Name="">LCPI.IBProvider Error Lookup [v5]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w64_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{769A12AD-04BF-11D8-AE8B-00A0C907DB93}">
     <Value Name="">LCPI.IBProvider Error Lookup [v5][Free]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w64_freee_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{A8E8B9E6-F7C4-4126-B572-0C675A4BB9DE}">
     <Value Name="">LCPI.IBProvider Error Lookup [v5] [Private.Release]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w64_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{EC1206D8-0C97-4C72-B84B-B8E92406126D}">
     <Value Name="">LCPI.IBProvider Error Lookup [v5] [Private.Debug]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w64_prof_d.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{40AD5FB6-0804-11E7-964E-2C56DC394BFA}">
     <Value Name="">LCPI.OleDbServices.DataInitManager.Global.1</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w64_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{40AD5FB5-0804-11E7-964E-2C56DC394BFA}">LCPI OLE DB Services Error Lookup [v1]</Key>
     </Key>

     <Key Name="ProgID">LCPI.OleDbServices.DataInitManager.Global.1</Key>

     <Key Name="VersionIndependentProgID">LCPI.OleDbServices.DataInitManager.Global</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{40AD5FB8-0804-11E7-964E-2C56DC394BFA}">
     <Value Name="">LCPI.OleDbServices.DataInitManager.Local.1</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w64_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{40AD5FB5-0804-11E7-964E-2C56DC394BFA}">LCPI OLE DB Services Error Lookup [v1]</Key>
     </Key>

     <Key Name="ProgID">LCPI.OleDbServices.DataInitManager.Local.1</Key>

     <Key Name="VersionIndependentProgID">LCPI.OleDbServices.DataInitManager.Local</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{2206CDB0-19C1-11D1-89E0-00C04FD7A829}">
     <Value Name="">MSDASC.MSDAINITIALIZE.1 [LCPI]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w64_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{40AD5FB5-0804-11E7-964E-2C56DC394BFA}">LCPI OLE DB Services Error Lookup [v1]</Key>
     </Key>

     <Key Name="ProgID">MSDASC.MSDAINITIALIZE.1</Key>

     <Key Name="VersionIndependentProgID">MSDASC.MSDAINITIALIZE</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{CCB4EC60-B9DC-11D1-AC80-00A0C9034873}">
     <Value Name="">MSDASC.PDPO.1 [LCPI]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w64_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{40AD5FB5-0804-11E7-964E-2C56DC394BFA}">LCPI OLE DB Services Error Lookup [v1]</Key>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{44F98904-F10D-45B2-B5FF-1A17D79EAF1F}">
     <Value Name="">LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.release</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w64_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{7DF6AC82-7A5E-4058-87E5-A91D67B0636B}">LCPI OLE DB Services Error Lookup [v1] [Private.Release]</Key>
     </Key>

     <Key Name="ProgID">LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.release</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{420CE6F3-F255-441D-BFCE-C5451D4C7607}">
     <Value Name="">LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.debug</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w64_prof_d.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{40A90C63-D3F4-4060-8A53-9D2D5EFAE0CE}">LCPI OLE DB Services Error Lookup [v1] [Private.Debug]</Key>
     </Key>

     <Key Name="ProgID">LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.debug</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{40AD5FB5-0804-11E7-964E-2C56DC394BFA}">
     <Value Name="">LCPI OLE DB Services Error Lookup [v1]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w64_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{7DF6AC82-7A5E-4058-87E5-A91D67B0636B}">
     <Value Name="">LCPI OLE DB Services Error Lookup [v1] [Private.Release]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w64_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- PRIVATE -->
    <Key Name="{40A90C63-D3F4-4060-8A53-9D2D5EFAE0CE}">
     <Value Name="">LCPI OLE DB Services Error Lookup [v1] [Private.Debug]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w64_prof_d.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

   </Key> <!-- /CLSID -->

   <!-- +++++++++++++++++++++++++ PROG IDs +++++++++++++++++++++++++++++++ -->

   <Key Name="LCPI.IBProvider.5">
    <Value Name="">LCPI OLE DB Provider for InterBase [v5]</Value>
    <Key Name="CLSID">{769A12A0-04BF-11D8-AE8B-00A0C907DB93}</Key>
   </Key>

   <Key Name="LCPI.IBProvider">
    <Value Name="">LCPI OLE DB Provider for InterBase [v5]</Value>
    <Key Name="CurVer">LCPI.IBProvider.5</Key>
   </Key>

   <Key Name="LCPI.IBProvider.5.Free">
    <Value Name="">LCPI OLE DB Provider for InterBase [v5][Free]</Value>
    <Key Name="CLSID">{769A12AC-04BF-11D8-AE8B-00A0C907DB93}</Key>
   </Key>

   <Key Name="LCPI.IBProvider.5.Private.vc17.release">
    <Key Name="CLSID">{B1F5221E-6135-490B-8FD8-7BB8A1EBB775}</Key>
   </Key>

   <Key Name="LCPI.IBProvider.5.Private.vc17.debug">
    <Key Name="CLSID">{EE5D1409-7217-4F6A-83AD-8A865DC2BA3C}</Key>
   </Key>

   <Key Name="LCPI.OleDbServices.DataInitManager.Global.1">
    <Value Name="">LCPI OLE DB Services. Connection Initializer [Global].</Value>
    <Key Name="CLSID">{40AD5FB6-0804-11E7-964E-2C56DC394BFA}</Key>
   </Key>

   <Key Name="LCPI.OleDbServices.DataInitManager.Global">
    <Value Name="">LCPI OLE DB Services. Connection Initializer [Global].</Value>
    <Key Name="CurVer">LCPI.OleDbServices.DataInitManager.Global.1</Key>
   </Key>

   <Key Name="LCPI.OleDbServices.DataInitManager.Local.1">
    <Value Name="">LCPI OLE DB Services. Connection Initializer [Local].</Value>
    <Key Name="CLSID">{40AD5FB8-0804-11E7-964E-2C56DC394BFA}</Key>
   </Key>

   <Key Name="LCPI.OleDbServices.DataInitManager.Local">
    <Value Name="">LCPI OLE DB Services. Connection Initializer [Local].</Value>
    <Key Name="CurVer">LCPI.OleDbServices.DataInitManager.Local.1</Key>
   </Key>

   <Key Name="MSDASC.MSDAINITIALIZE.1">
    <Value Name="">LCPI OLE DB Services. Connection Initializer [MSDAINITIALIZE].</Value>
    <Key Name="CLSID">{2206CDB0-19C1-11D1-89E0-00C04FD7A829}</Key>
   </Key>

   <Key Name="MSDASC.MSDAINITIALIZE">
    <Value Name="">LCPI OLE DB Services. Connection Initializer [MSDAINITIALIZE].</Value>
    <Key Name="CurVer">MSDASC.MSDAINITIALIZE.1</Key>
   </Key>

   <Key Name="LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.release">
    <Key Name="CLSID">{44F98904-F10D-45B2-B5FF-1A17D79EAF1F}</Key>
   </Key>

   <Key Name="LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.debug">
    <Key Name="CLSID">{420CE6F3-F255-441D-BFCE-C5451D4C7607}</Key>
   </Key>

   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
  </Key>
 </Registry>
</ECM>

The source code of example:

////////////////////////////////////////////////////////////////////////////////
//Samples for LCPI ADO.NET Data provider for OLEDB.
//                                                    ibprovider.com. 19.01.2023
using System;
using System.Threading;
using lcpi.data.oledb;

namespace Sample_0031{
////////////////////////////////////////////////////////////////////////////////
//class Program

class Program
{
 //
 // Valid identifiers:
 //  - LCPI.IBProvider                        [lcpi.ibprovider-v5_vc17_wXX_prof_i.dll]
 //  - LCPI.IBProvider.5                      [lcpi.ibprovider-v5_vc17_wXX_prof_i.dll]
 //  - LCPI.IBProvider.5.Free                 [lcpi.ibprovider-v5_vc17_wXX_free_i.dll]
 //  - LCPI.IBProvider.5.Private.vc17.release [lcpi.ibprovider-v5_vc17_wXX_prof_i.dll]
 //  - LCPI.IBProvider.5.Private.vc17.debug   [lcpi.ibprovider-v5_vc17_wXX_prof_d.dll]
 //
 private const string c_cn_str
  ="provider=LCPI.IBProvider.5;"
  +"location=inet4://localhost/d:\\database\\fb_03_0_0\\employee.fdb;"
  +"dbclient_type=fb.direct;"
  +"user id=SYSDBA;"
  +"password=masterkey;";

 //----------------------------------------------------------------------
 static int Main(string[] args)
 {
  int resultCode=0;

  try // [catch]
  {
   string comApiProviderDir
    =Helper__GetRootDirOfLcpiComApiProvider();

   //Console.WriteLine("comApiProviderDir: [{0}]",comApiProviderDir);

   //-----------------
   Console.WriteLine("Creating comApiProvider ...");

   //
   // Attention: this object will provide COM infrastructure!
   //
   lcpi.lib.com.IComApiProvider
    comApiProvider
     =new lcpi.lib.com.LcpiComApiProvider
       (comApiProviderDir);

   //-----------------
   OleDbServices    oledbServices=null;
   OleDbConnection  cn=null;
   OleDbTransaction tr=null;
   OleDbCommand     cmd=null;

   try // [finally]
   {
    Console.WriteLine("Creating LCPI OLE DB Services ...");

    oledbServices
     =OleDbServices.CreateWithComApiProvider
       (comApiProvider);

    //-----------------
    Console.WriteLine("Creating a connection ...");

    cn=oledbServices.CreateConnection(c_cn_str);

    //-----------------
    Console.WriteLine("Openning a connection ...");

    cn.Open();

    //-----------------
    Console.WriteLine("Starting a transaction ...");

    tr=cn.BeginTransaction();

    //-----------------
    Console.WriteLine("Executing a command ...");

    cmd=new OleDbCommand("select COUNT(*) from employee",cn,tr);

    var cEmployees=cmd.ExecuteScalar();

    Console.WriteLine("The count of employees: {0}",cEmployees);

    //-----------------
    Console.WriteLine("Committing ...");

    tr.Commit();
   }
   finally
   {
    lcpi.lib.structure.DisposeUtils.Exec(cmd);
    lcpi.lib.structure.DisposeUtils.Exec(tr);
    lcpi.lib.structure.DisposeUtils.Exec(cn);
    lcpi.lib.structure.DisposeUtils.Exec(oledbServices);
   }//finally
  }
  catch(Exception e)
  {
   //Note: exception can holds a pointer with COM-object

   resultCode=1;

   Console.WriteLine("");
   Console.WriteLine("ERROR: {0} - {1}",e.Source,e.Message);
  }//catch

  return resultCode;
 }//Main

 //Helper interface ------------------------------------------------------
 private static string Helper__GetRootDirOfLcpiComApiProvider()
 {
  var asmPath
   =System.Reflection.Assembly.GetExecutingAssembly().Location;

  var curAsmDir
   =System.IO.Path.GetDirectoryName(asmPath);

  switch(IntPtr.Size)
  {
   case 4:
    return System.IO.Path.Combine(curAsmDir,"private-w32");

   case 8:
    return System.IO.Path.Combine(curAsmDir,"private-w64");

   default:
    throw new ApplicationException("Unexpected IntPtr.Size!");
  }//switch
 }//Helper__GetRootDirOfLcpiComApiProvider
}//class Program

////////////////////////////////////////////////////////////////////////////////
}//namespace Sample_0031


Output of sample.
Output.