Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi OLEVariant von einer ActiveX (https://www.delphipraxis.net/88675-olevariant-von-einer-activex.html)

maz 19. Mär 2007 10:04


OLEVariant von einer ActiveX
 
Hi Leute,
ich benutze eine ActiveX die folgende Function bietet:
Delphi-Quellcode:
function GetTuneDataLabels(nSegmentNumber: Integer; var pvarLabels: OleVariant;
                               var pnArraySize: Integer): Integer; dispid 99;
Das Ding verlangt ein OleVarinat. In der Doc (für C++) steht folgendes:
The variable pvarLabels must be initialized to VARIANT type VT_EMPTY. On return, this variable will be of type VT_ARRAY | VT_BSTR. On return, pnArraySize will contain the number of entries in the pvarLabels array.
Example
// example for GetTuneDataLabels
long nSegment = 1; // first tune record
VARIANT varLabels;
VariantInit(&varLabels);
long nArraySize = 0;
long nRet = XRawfileCtrl. GetTuneDataLabels (nSegment, &varLabels, &nArraySize);
if( nRet != 1 )
{
::MessageBox( NULL, _T(“Error getting tune record information”), _T(“Error”), MB_OK );

}


Wenn ich da ein OLEVariant übergebe, gibt diese ActiveX komponente immer einen Fehler, von wegen nicht richtig initialisiert (die OLEVariant). Hat jemand eine Idee, wie ich das machen könnte, bzw. wie man die OLEVAriant mit "type VT_EMPTY initialisiert"? soweit ich weis is das in delphi nicht nötig.
Es gab schon mal einen beitrag zu diesem thema, der blieb allerdings ohne antwort.
danke für jeden tipp,
maz

mkinzler 19. Mär 2007 10:08

Re: OLEVariant von einer ActiveX
 
Ein OleVariant ist ja nur ein besonderer Variant. Die Funktion erwartet wohl eine initialisierte Struktur eine bestimmten Typs


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

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