Der Tip:
Haltepunkt bei der Funktion setzen und mit F11 in die Funktion springen.
Man sieht dann, welcher Parameter benötigt wird.
Das mußte ich zweimal machen und nun glaube ich zu Wissen, daß ein Datentyp BYTE verlangt wird.
Ist doch richtig oder?
void CMSComm::SetOutput(const VARIANT& newValue)
{
static BYTE parms[] = VTS_VARIANT;
InvokeHelper(0x19, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL,
parms, &newValue);
}
void AFX_CDECL CWnd::InvokeHelper(DISPID dwDispID, WORD wFlags, VARTYPE vtRet, void* pvRet, const BYTE* pbParamInfo, ...)
{
ASSERT(m_pCtrlSite != NULL); // not an OLE control (not yet, at
least)
if (m_pCtrlSite == NULL)
return;
va_list argList;
va_start(argList, pbParamInfo);
m_pCtrlSite->InvokeHelperV(dwDispID, wFlags, vtRet, pvRet,
pbParamInfo, argList);
va_end(argList);
}
Wie bekommt man jetzt ein BYTE-Array in ein Variant????
Wo kann ich am Control den zu übergebenen Datentyp einstellen?
Ich will Daten, die durch die serielle Schnittstelle gesendet werden kontrollieren.
Dazu sollen die Daten zwischen zwei kommunizierenden Geräten durch den PC geleitet werden.
Ein Control soll Daten empfangen, eins soll sie senden und umgekehrt. Das ist aber Zukunft.
Gegenwärtig will ich nur den Umgang mit Controls und Visual C++ anhand von kleinen Projekten lernen.
Im Prinzip ist mir egal, wie ich die Daten aus dem Control kommen. Ich kann sie dann wandeln, das kriege ich schon hin denke ich.