Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi IMoniker - aber wie ? (https://www.delphipraxis.net/831-imoniker-aber-wie.html)

sakura 13. Sep 2002 09:12


IMoniker - aber wie ?
 
Hi DPler,

ich denke mal, dass das die richtige Sparte ist, aber na ja. Ich möchte COM (COM+/DCOM) Objekte erstellen welche die IMoniker Schnittstelle implementieren. Hat jemand von Euch da schon mal die Erfahrung mit gemacht, oder weiss jemand, wie ich das am dümmsten anstelle.

Am Ende sollen die Objekte über den VB Befehl (oder ein entsprechendes Äquivalent) GetObject("NameDesObjectes://Pfad/Zur/Resource") abrufbar sein.

Die Delphi Version von GetObject sieht wie folgt aus:
Code:
function VBGetObject(const Name: AnsiString): IDispatch;
var
  BindContext: IBindCtx;
  Moniker: IMoniker;
  Eaten: Integer;
begin
  OleCheck(CreateBindCtx(0, BindContext));
  OleCheck(MkParseDisplayName(
    BindContext, PWideChar(WideString(Name)), Eaten, Moniker
  ));
  OleCheck(Moniker.BindToObject(BindContext, nil, IDispatch, Result));
end;
:?: ...:cat:... :?:

theomega 13. Sep 2002 12:05

evlt. könntest du mir mal erklären was "IMoniker" ist?

sakura 13. Sep 2002 12:15

Zitat:

Zitat von MSDN Library April 2002
The IMoniker interface contains methods that allow you to use a moniker object, which contains information that uniquely identifies a COM object. An object that has a pointer to the moniker object's IMoniker interface can locate, activate, and get access to the identified object without having any other specific information on where the object is actually located in a distributed system.

Das soll heissen, dass COM Objekte, welche das IMoniker Interface unterstützen, über einen "menschlichen" Namen angesprochen werden können.

Einer der bekanntesten Moniker ist der FileMoniker, welcher es ermöglicht direkt auf Dateien zuzugreifen. Z.B.: "C:\WinNT\win.ini"

Es gibt auch ItemMoniker, mit welchen man direkt auf Elemente einer Datei zugreifen kann.Z.B.: "C:\work\sales.xls!A1:E7." Diese ermöglichen in diesem Fall das starten von Excel und den Zugriff auf die Daten der Zellen A1 bis E7 der Excel Datei C:\work\sales.xls...


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz