| #include <utilcls.h>
Over last we#include <utilcls.h>ek I was trying (unsuccessfully) to post a data using Navigate2 method of WebBrowser control.
By the way I learned how to use SafeArrays and what TVariant class is. But it seemed to not help me alot...
I have created test page that receives (or at least SHOULD) 3 values of 3 fields I prompt user to enter. Although WebBrowser connects to the page successfully, it seems to not post anything accordingly.
Here's code snippet of what I tried:
*Method 1* TVariant vtEmpty; TVariant vtPostDataArray; char *str="action=LogMe&username=MyName&password=MyPass";
SAFEARRAY FAR *psa=NULL; SAFEARRAYBOUND sabound[46]; sabound[0].cElements=strlen(str); sabound[0].lLbound=0; psa=SafeArrayCreate(VT_UI1,1,sabound); for(unsigned int n=0; n<strlen(str); n++){ SafeArrayPutElement(psa,(long*)0,(void*)str[n]); }
vtEmpty.vt = VT_EMPTY; vtPostDataArray.vt=VT_ARRAY; vtPostDataArray.SetSAFEARRAY(psa); // or vtPostDataArray=psa;
TVariant vAddress= {"http://my.server/test/postresults.asp"}; CppWebBrowser1->Navigate2 (&vAddress,&vtEmpty,&vtEmpty,&vtPostDataArray,&vtEmpty); SafeArrayDestroy(psa);
*Method 2 (provided by Borland)* TVariant vtEmpty; char *str="action=LogMe&username=MyName&password=MyPass"; TSafeArrayDim1 dim(strlen(str)); TSafeArrayUInt1 uint_array(dim); for(unsigned int n=0; n<strlen(str); n++){ uint_array[n]=str[n]; }
SAFEARRAY* sa=uint_array.Detach(); SafeArrayCopy(sa,&uint_array);
vtEmpty.vt = VT_EMPTY; TVariant vAddress= {"http://my.server/test/postresults.asp"}; CppWebBrowser1->Navigate2 (&vAddress,&vtEmpty,&vtEmpty,&sa,&vtEmpty); SafeArrayDestroy(sa);
Neither of these did work for me... :-(
I would very appreciate any comments or assistance on this one.
Adam |