Reputation: 50998
I'm attempting to add some Active Directory related functionality to my Delphi application. My development machine is an Azure Windows virtual machine.
When I go to Import Component | Import Type Library I do not see Active DS as a registered Type Library. If I click "Add" and navigate to C:\Windows\System32 the TLB file is there but if I try to import it I get the error "Error accessing the OLE registry" and the following impenetrable detail.
How can I register this type library and import it so that I can call active directory related Windows APIs?
[505AC9C0]{rtl280.bpl } System.Win.ComObj.EOleSysError.Create (Line 1445, "System.Win.ComObj.pas" + 4) + $3
[505AC9CF]{rtl280.bpl } System.Win.ComObj.EOleSysError.Create (Line 1447, "System.Win.ComObj.pas" + 6) + $0
[213B87DF]{tlib280.bpl } TlbUtils.RegisterTypeLibrary (Line 422, "TlbUtils.pas" + 3) + $1B
[213B8847]{tlib280.bpl } TlbUtils.LoadAndRegisterTypeLibrary (Line 430, "TlbUtils.pas" + 2) + $5
[51EFFB81]{comcore280.bpl} ImportTLB.TTypeLibSelectionManager.OnAdd (Line 223, "ImportTLB.pas" + 40) + $3
[20810093]{coreide280.bpl} ItemsWizardPage.TListFrame.AddButtonClick (Line 554, "ItemsWizardPage.pas" + 3) + $8
[50CC8223]{vcl280.bpl } Vcl.Controls.TControl.Click (Line 7660, "Vcl.Controls.pas" + 9) + $8
[50CF03F6]{vcl280.bpl } Vcl.StdCtrls.TCustomButton.Click (Line 5875, "Vcl.StdCtrls.pas" + 3) + $2
[50CF1580]{vcl280.bpl } Vcl.StdCtrls.TCustomButton.CNCommand (Line 6510, "Vcl.StdCtrls.pas" + 1) + $B
[50CC7CCA]{vcl280.bpl } Vcl.Controls.TControl.WndProc (Line 7544, "Vcl.Controls.pas" + 91) + $6
[50CC9782]{vcl280.bpl } Vcl.Controls.TControl.GetStyleName (Line 8574, "Vcl.Controls.pas" + 1) + $8
[50CC97AE]{vcl280.bpl } Vcl.Controls.TControl.GetStyleName (Line 8578, "Vcl.Controls.pas" + 5) + $7
[5005A36C]{rtl280.bpl } System.@GetMem (Line 4928, "System.pas" + 20) + $0
[50061FB2]{rtl280.bpl } System.@NewUnicodeString (Line 25652, "System.pas" + 10) + $0
[5006245D]{rtl280.bpl } System.@UStrAsg (Line 26576, "System.pas" + 19) + $0
[5005A388]{rtl280.bpl } System.@FreeMem (Line 4976, "System.pas" + 20) + $0
[500620D8]{rtl280.bpl } System.@UStrArrayClr (Line 25996, "System.pas" + 9) + $0
[50CC985F]{vcl280.bpl } Vcl.Controls.TControl.IsCustomStyleActive (Line 8592, "Vcl.Controls.pas" + 8) + $15
[50CCCDBD]{vcl280.bpl } Vcl.Controls.TWinControl.WndProc (Line 10579, "Vcl.Controls.pas" + 170) + $6
[50CF0068]{vcl280.bpl } Vcl.StdCtrls.TButtonControl.WndProc (Line 5708, "Vcl.StdCtrls.pas" + 13) + $4
[50CC7900]{vcl280.bpl } Vcl.Controls.TControl.Perform (Line 7322, "Vcl.Controls.pas" + 10) + $8
[50CCCF17]{vcl280.bpl } Vcl.Controls.DoControlMsg (Line 10648, "Vcl.Controls.pas" + 12) + $11
[50CCD9BB]{vcl280.bpl } Vcl.Controls.TWinControl.WMCommand (Line 10925, "Vcl.Controls.pas" + 1) + $5
[50CC7CCA]{vcl280.bpl } Vcl.Controls.TControl.WndProc (Line 7544, "Vcl.Controls.pas" + 91) + $6
[50CCCEC5]{vcl280.bpl } Vcl.Controls.TWinControl.DefaultHandler (Line 10620, "Vcl.Controls.pas" + 30) + $19
[50CC7CCA]{vcl280.bpl } Vcl.Controls.TControl.WndProc (Line 7544, "Vcl.Controls.pas" + 91) + $6
[50CC9782]{vcl280.bpl } Vcl.Controls.TControl.GetStyleName (Line 8574, "Vcl.Controls.pas" + 1) + $8
[50CC97AE]{vcl280.bpl } Vcl.Controls.TControl.GetStyleName (Line 8578, "Vcl.Controls.pas" + 5) + $7
[5005A36C]{rtl280.bpl } System.@GetMem (Line 4928, "System.pas" + 20) + $0
[50061FB2]{rtl280.bpl } System.@NewUnicodeString (Line 25652, "System.pas" + 10) + $0
[5006245D]{rtl280.bpl } System.@UStrAsg (Line 26576, "System.pas" + 19) + $0
[5005A388]{rtl280.bpl } System.@FreeMem (Line 4976, "System.pas" + 20) + $0
[500620D8]{rtl280.bpl } System.@UStrArrayClr (Line 25996, "System.pas" + 9) + $0
[50CC985F]{vcl280.bpl } Vcl.Controls.TControl.IsCustomStyleActive (Line 8592, "Vcl.Controls.pas" + 8) + $15
[50CCCDBD]{vcl280.bpl } Vcl.Controls.TWinControl.WndProc (Line 10579, "Vcl.Controls.pas" + 170) + $6
[50CC9782]{vcl280.bpl } Vcl.Controls.TControl.GetStyleName (Line 8574, "Vcl.Controls.pas" + 1) + $8
[50CC97AE]{vcl280.bpl } Vcl.Controls.TControl.GetStyleName (Line 8578, "Vcl.Controls.pas" + 5) + $7
[50CCC338]{vcl280.bpl } Vcl.Controls.TWinControl.MainWndProc (Line 10267, "Vcl.Controls.pas" + 3) + $6
[50174200]{rtl280.bpl } System.Classes.StdWndProc (Line 18318, "System.Classes.pas" + 8) + $0
[217C5B1F]{vclactnband280.bpl} Vcl.ActnMenus.CallWindowHook (Line 762, "Vcl.ActnMenus.pas" + 20) + $F
[50061544]{rtl280.bpl } System.@TryFinallyExit (Line 23404, "System.pas" + 8) + $0
[50DCDF3F]{vcl280.bpl } Vcl.Themes.TStyleManager.GetStyle (Line 5800, "Vcl.Themes.pas" + 18) + $1E
[50DD15DE]{vcl280.bpl } Vcl.Themes.TStyleHook.HandleMessage (Line 7389, "Vcl.Themes.pas" + 20) + $6
[500602C7]{rtl280.bpl } System.TObject.Dispatch (Line 18874, "System.pas" + 11) + $0
[50DD1DB9]{vcl280.bpl } Vcl.Themes.TStyleHook.WndProc (Line 7684, "Vcl.Themes.pas" + 38) + $6
[50DD1F90]{vcl280.bpl } Vcl.Themes.TMouseTrackControlStyleHook.WndProc (Line 7784, "Vcl.Themes.pas" + 0) + $0
[50E1B1D9]{vcl280.bpl } Vcl.Forms.TFormStyleHook.WndProc (Line 18214, "Vcl.Forms.pas" + 7) + $4
[50CCAE2F]{vcl280.bpl } Vcl.Controls.TWinControl.DoHandleStyleMessage (Line 9408, "Vcl.Controls.pas" + 0) + $F
[50CCCDBD]{vcl280.bpl } Vcl.Controls.TWinControl.WndProc (Line 10579, "Vcl.Controls.pas" + 170) + $6
[50CCCEC5]{vcl280.bpl } Vcl.Controls.TWinControl.DefaultHandler (Line 10620, "Vcl.Controls.pas" + 30) + $19
[50CC8670]{vcl280.bpl } Vcl.Controls.TControl.WMLButtonUp (Line 7793, "Vcl.Controls.pas" + 1) + $6
[50174200]{rtl280.bpl } System.Classes.StdWndProc (Line 18318, "System.Classes.pas" + 8) + $0
[50CC7CCA]{vcl280.bpl } Vcl.Controls.TControl.WndProc (Line 7544, "Vcl.Controls.pas" + 91) + $6
[50EF0AA3]{vcl280.bpl } Vcl.Styles.TCustomStyle.SourceLoaded (Line 3315, "Vcl.Styles.pas" + 1) + $13
[50EF09E0]{vcl280.bpl } Vcl.Styles.TCustomStyle.GetEnabled (Line 3295, "Vcl.Styles.pas" + 0) + $4
[50DCDFD3]{vcl280.bpl } Vcl.Themes.TStyleManager.GetIsCustomStyleActive (Line 5836, "Vcl.Themes.pas" + 0) + $7
[50DD223D]{vcl280.bpl } Vcl.Themes.TCustomStyleEngine.HookCBProc (Line 7856, "Vcl.Themes.pas" + 3) + $0
[50DD2417]{vcl280.bpl } Vcl.Themes.TCustomStyleEngine.HookCBProc (Line 7921, "Vcl.Themes.pas" + 68) + $18
[50CC9782]{vcl280.bpl } Vcl.Controls.TControl.GetStyleName (Line 8574, "Vcl.Controls.pas" + 1) + $8
[50CC97AE]{vcl280.bpl } Vcl.Controls.TControl.GetStyleName (Line 8578, "Vcl.Controls.pas" + 5) + $7
[5005A36C]{rtl280.bpl } System.@GetMem (Line 4928, "System.pas" + 20) + $0
[50061FB2]{rtl280.bpl } System.@NewUnicodeString (Line 25652, "System.pas" + 10) + $0
[5006245D]{rtl280.bpl } System.@UStrAsg (Line 26576, "System.pas" + 19) + $0
[50CCC54F]{vcl280.bpl } Vcl.Controls.TWinControl.IsControlMouseMsg (Line 10330, "Vcl.Controls.pas" + 1) + $9
[50CC985F]{vcl280.bpl } Vcl.Controls.TControl.IsCustomStyleActive (Line 8592, "Vcl.Controls.pas" + 8) + $15
[50CCCDBD]{vcl280.bpl } Vcl.Controls.TWinControl.WndProc (Line 10579, "Vcl.Controls.pas" + 170) + $6
[50CF0068]{vcl280.bpl } Vcl.StdCtrls.TButtonControl.WndProc (Line 5708, "Vcl.StdCtrls.pas" + 13) + $4
[50CCC338]{vcl280.bpl } Vcl.Controls.TWinControl.MainWndProc (Line 10267, "Vcl.Controls.pas" + 3) + $6
[50174200]{rtl280.bpl } System.Classes.StdWndProc (Line 18318, "System.Classes.pas" + 8) + $0
[50E0D68F]{vcl280.bpl } Vcl.Forms.TApplication.ProcessMessage (Line 11317, "Vcl.Forms.pas" + 23) + $1
[50E0D6D2]{vcl280.bpl } Vcl.Forms.TApplication.HandleMessage (Line 11347, "Vcl.Forms.pas" + 1) + $4
[50E089D2]{vcl280.bpl } Vcl.Forms.TCustomForm.ShowModal (Line 7972, "Vcl.Forms.pas" + 50) + $5
[50E08B78]{vcl280.bpl } Vcl.Forms.TCustomForm.ShowModal (Line 8004, "Vcl.Forms.pas" + 82) + $13
[20804954]{coreide280.bpl} Wizard.TWizard.Show (Line 1178, "Wizard.pas" + 18) + $8
[51F020B0]{comcore280.bpl} ImportComponentWizard.CreateImportComponent (Line 331, "ImportComponentWizard.pas" + 15) + $5
[51F08718]{comcore280.bpl} ComStdReg.TComMenus.DoImportComponentExecute (Line 118, "ComStdReg.pas" + 0) + $4
[501733CF]{rtl280.bpl } System.Classes.TBasicAction.Execute (Line 17813, "System.Classes.pas" + 3) + $7
[50CAF9B2]{vcl280.bpl } Vcl.ActnList.TCustomAction.Execute (Line 284, "Vcl.ActnList.pas" + 19) + $35
[50173223]{rtl280.bpl } System.Classes.TBasicActionLink.Execute (Line 17724, "System.Classes.pas" + 2) + $7
[217C663D]{vclactnband280.bpl} Vcl.ActnMenus.TCustomActionMenuBar.ExecAction (Line 1099, "Vcl.ActnMenus.pas" + 6) + $D
[217C7EF8]{vclactnband280.bpl} Vcl.ActnMenus.TCustomActionMenuBar.TrackMenu (Line 1869, "Vcl.ActnMenus.pas" + 19) + $15
[217CBA3E]{vclactnband280.bpl} Vcl.ActnMenus.TCustomActionMainMenuBar.TrackMenu (Line 3736, "Vcl.ActnMenus.pas" + 5) + $3
[217C61BC]{vclactnband280.bpl} Vcl.ActnMenus.TCustomActionMenuBar.CMItemClicked (Line 969, "Vcl.ActnMenus.pas" + 2) + $11
[217C61C5]{vclactnband280.bpl} Vcl.ActnMenus.TCustomActionMenuBar.CMItemClicked (Line 970, "Vcl.ActnMenus.pas" + 3) + $4
[50CC7CCA]{vcl280.bpl } Vcl.Controls.TControl.WndProc (Line 7544, "Vcl.Controls.pas" + 91) + $6
[50CCCDBD]{vcl280.bpl } Vcl.Controls.TWinControl.WndProc (Line 10579, "Vcl.Controls.pas" + 170) + $6
[50CC7900]{vcl280.bpl } Vcl.Controls.TControl.Perform (Line 7322, "Vcl.Controls.pas" + 10) + $8
[50CCC435]{vcl280.bpl } Vcl.Controls.GetControlAtPos (Line 10291, "Vcl.Controls.pas" + 2) + $78
[50CCC506]{vcl280.bpl } Vcl.Controls.InternalControlAtPos (Line 10315, "Vcl.Controls.pas" + 15) + $E
[50CCCC49]{vcl280.bpl } Vcl.Controls.TWinControl.WndProc (Line 10527, "Vcl.Controls.pas" + 118) + $1D
[50CCCDBD]{vcl280.bpl } Vcl.Controls.TWinControl.WndProc (Line 10579, "Vcl.Controls.pas" + 170) + $6
[50060D74]{rtl280.bpl } System.TMonitor.TryEnter (Line 19961, "System.pas" + 10) + $0
[50060894]{rtl280.bpl } System.TMonitor.Enter (Line 19622, "System.pas" + 4) + $2
[500606FC]{rtl280.bpl } System.TMonitor.CheckOwningThread (Line 19536, "System.pas" + 2) + $0
[50060A22]{rtl280.bpl } System.TMonitor.Exit (Line 19726, "System.pas" + 1) + $2
[217C802B]{vclactnband280.bpl} Vcl.ActnMenus.TCustomActionMenuBar.WndProc (Line 1913, "Vcl.ActnMenus.pas" + 25) + $4
[50CCC338]{vcl280.bpl } Vcl.Controls.TWinControl.MainWndProc (Line 10267, "Vcl.Controls.pas" + 3) + $6
[50174200]{rtl280.bpl } System.Classes.StdWndProc (Line 18318, "System.Classes.pas" + 8) + $0
[50E0D68F]{vcl280.bpl } Vcl.Forms.TApplication.ProcessMessage (Line 11317, "Vcl.Forms.pas" + 23) + $1
[50E0D6D2]{vcl280.bpl } Vcl.Forms.TApplication.HandleMessage (Line 11347, "Vcl.Forms.pas" + 1) + $4
[50E0DA11]{vcl280.bpl } Vcl.Forms.TApplication.Run (Line 11486, "Vcl.Forms.pas" + 27) + $3
[004F6F82]{bds.exe } bds.bds (Line 227, "" + 16) + $2
Upvotes: 1
Views: 916
Reputation: 50998
Found the answer:
Delphi is unable to Add a registration for ActiveDS. However, you can do this manually from the command prompt with tregsvr -t -c activeds.tlb
. Once that's the done, the library appears in the list of registered type libraries in Delphi and can be imported.
Upvotes: 2