![]() |
ActiveX und OLEVariant Pointer / Array Übergabe
Hallo Entwickler,
ich hänge seit geraumer Zeit an einem Problem mit einem ActiveX-Control das mir ein OLEVarinat zurückgibt, aber dahinter stehen 4096 Bytes. In der .tlb sieht das ganze so aus: function GetData(var RtnData: OleVariant; var RtnLen: OleVariant): Integer; dispid 26; in C++ funktioniert das Lesen so: void COcxDlg::OnBtnGetConfiguration() { // TODO: Add your control notification handler code here VARIANT varData,vatLen; char szBuf[5000]; int nLen; memset(szBuf,0,5000); m_RichEdit.vSetRamContext((unsigned char *)szBuf,4096); long nRtn = m_Ocx.GetData(&varData,&vatLen); if(nRtn == FALSE) { AfxMessageBox("Read Data Error"); return; } nLen = vatLen.lVal; memcpy(szBuf,varData.pcVal,nLen); m_RichEdit.vSetRamContext((unsigned char *)szBuf,4096); } ich habe es wie folgt versucht: var ReadData,BytesRead:Olevariant; ... isDataRead:=myOcx.GetData(ReadData,BytesRead); ... Der Wert in BytesRead stimmt, aber in ReadData steht immer nur 0, wenn ich mit einem POLEVariant Pointer arbeite und die Bytesread einlese, dann steht da nur Grütze. Kann mir jemand auf die Sprünge helfen? Vielen Dank.... |
Re: ActiveX und OLEVariant Pointer / Array Übergabe
probiers mal mit einem array of char und/oder nem pointer dadrauf
//edit: ups, bezieht sich auf eine andere codezeile |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:43 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 by Thomas Breitkreuz