|
Hi guys,
One of the application I am working on at the moment needs to modify web-pages in order to insert custom OnLoad (or Window.OnLoad) Event-handlers.
My first shot was to do it solely by manually parsing the source of the web-page (i.e. load the HTML in memory and strtok() like mad...
Although this works fine in most cases it is not satisfying as some pages use JavaScript to dynamically modify the <Body> of the Document and it becomes increasingly difficult to modify the actual <Body> Tag.
After reading about MSHTML I've figured this should be a more elegant way of doing it. Unfortunately, documentation is very poor on the subject and it is not as easy as I thought it would be...
Anyway, here's my problem:
I can get hold of the Body Tag as a pointer to a IHTMLBodyElement. I can then Call get_onload() with a VT_DISPATCH variable that receives (says MSDN) "the IDispatch interface of an object with a default method that is invoked when the event occurs"
That's great but what I want to do is
1) Check if this Event-handler is my custom script
2) If it's not, replace it by my custom Event-handler.
I guess, my first question is What type of Object is this (or what can I QueryInterface() to) ?
And of course, most importantly, can I change it ?
Thanks a lot in advance,
Cheers
Pierre Heler-Caruel
|
|
|
|
|
Anyone know how to test if the checkbox in a datetime picker control on a dialog box is checked or not?
I tried something like :
if(m_dtpDelivered.IsDlgButtonChecked(0) == BST_UNCHECKED) but I don't know the id of the checkbox, as the control owns it.
Thanks,
Giles
|
|
|
|
|
I don't have the answer, but I'd suggest using Spy++ to determine the ID of the checkbox if that's all you need.
Regards,
Alvaro
|
|
|
|
|
Use DTM_GETSYSTEMTIME. If it returns GDT_NONE, then the checkbox was unchecked.
--Mike--
My really out-of-date homepage
"Not our fault we are intellectually superior to the rest of the office." -- Paul Watson in the Lounge, 12/12/2001
Sonork - 100.10414 AcidHelm
Big fan of Alyson Hannigan.
|
|
|
|
|
Has anyone used wininet successfully to write large amounts of data...in my case...a servlet I've used the following code...
CHttpConnection* pServer = NULL;
CHttpFile* pFile = NULL;
pServer = session.GetHttpConnection(szServerName, nPort);
CString strData = "data from a file to send to the server";
pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_POST, szServletUrl);
pFile->SendRequestEx(strData.GetLength());
pFile->WriteString(strData);
pFile->EndRequest();
// need to get response...
I crash & burn on EndRequest()!
Thanks,
ed
'Love is an obsessive delusion that is cured by marriage.' Dr. Karl Bowman
|
|
|
|
|
Hello, the codegurus around the world.;)
Maybe, directly using WinInet API is easier to write this kind of codes.
I think that you need whil loop (or do - while loop) to check the status
of pFile->SendRequestEx(strData.GetLength()), maybe.
This is mainly because WinInet uses Syncrous(?) - like the blocking socket -
and the result of pFile->SendRequestEx(...) will not come back soon.
But, if we use Asnyrous WinInet, we get the result soon.
You also need the error checking for the main function.
Please, don't send me your email about your questions directly.
Have a nice day!
Sonork - 100.10571:vcdeveloper
-Masaaki Onishi-
|
|
|
|
|
Masaaki Onishi wrote:
directly using WinInet API is easier to write this kind of codes
I found a few examples on msdn after posting this. It appears that you are correct. Also looping on write may help. After going through this and seeing the numerous other questions posted that weren't answered, I may have to abstract this out and post an article.
Thanks,
ed
'Love is an obsessive delusion that is cured by marriage.' Dr. Karl Bowman
|
|
|
|
|
Name a few books and good websites to learn 3D programming in visual C++
|
|
|
|
|
It depends on which API you want to use:
if you want to use OpenGL: http://nehe.gamedev.net
book: OpenGL game programming
if you're gonna use DirectX: http://nexe.gamedev.net
i dunno any book
or r ye gonna program 3d without an API? hey anythings possible....
Kuniva
|
|
|
|
|
Hello expert C++ programmers...
I am not an expert anymore.. (or have I ever been?)
Well I program java now, but I need to do a program in C++
I have the stupidest question. I want to know how to make an array, and I have forgotten how. Could anyone plz show me.
I want to declare an array of character arrays.
char myArray[xx][xx];
but... I want to do it dynamically
something like: char myArray** = new char[xx][xx];
but that didnt work, and i cannot figure out how to do it. who better to ask than experts!?
|
|
|
|
|
Tror du är från sverige va??
Du gör så här:
// deklarera en variabel dynamiskt så här:
char* myArray = new char[4]; // 4 eller så många du vill
// sedan töm minnet
delete [] myArray;
If you didn't was a SWEDISH guy:
Declare an array dyn like this:
char* myArray = new char[4]; // 4 or how many elements you want
and then free it like this:
delete[] myArray;
------------------------------
©0d3 ©®4©k3® - That's me!
------------------------------
|
|
|
|
|
Rickard Andersson wrote:
Declare an array dyn like this:
char* myArray = new char[4]; // 4 or how many elements you want
and then free it like this:
delete[] myArray;
Yes, I am swedish
That array is no problem to declare. The problem I have is to dynamically delcare and array of arrays. That means I want to declare an array of pointers to a array-pointer.
Declared NOT DYNAMIC, char myArray[10][20];
This will get me an array with 10 arrays each 20 long. The question is how to do it with the new operator.
>> char* myArray = new char[4]; // 4 or how many elements you want
you can declare this char myArray[4];
or char myArray[] = " ";
I am not interested in a singel array of whatever. A twodimensional array dynamically declared.
I hope I have clarified a bit
Happy Christmas, and thanks for your help
// Robert
|
|
|
|
|
char **a = new char*[20];<br><br />
for(i=0;i<=19;i++)<br />
a[i]= new char[10];
Nish
Sonork ID 100.9786 voidmain
www.busterboy.org
If you don't find me on CP, I'll be at Bob's HungOut
|
|
|
|
|
suckup
weeeeeeeeeeeeeeeeeeeeeeeeeeeeeee lol i'm just crazy, i didn't mean that, i just had to say that, it sounded funny in my head! sorry to've wasted your time i wouldn't know how to do it either!
Kuniva
|
|
|
|
|
Here's how:
int X = some_calculated_number();
int Y = some_other_calculated_number();
char** myArray = new char*[X];
for (int i = 0; i < X; i++)
myArray[i] = new char[Y];
Regards,
Alvaro
|
|
|
|
|
|
I need to get the time a certain file was last modified/accessed.
I'm guessing i can use CFileFind for this?
CFileFind::GetLastAccessTime(&CTime) ????
how do i use it? how do i set the filename???
+ i need to get the time in a CString
CFileFind.Format(blablabla) ???
Anyone know this?
Thanks
Kuniva
|
|
|
|
|
Use CFile::GetStatus().
/ravi
"There is always one more bug..."
http://www.ravib.com
ravib@ravib.com
|
|
|
|
|
woohoo it works!! thanks!
Kuniva
|
|
|
|
|
How can I determine from within of my programm wether the particular process is running or not in my system when I know only name of exe file?
|
|
|
|
|
Perhaps you could enumerate all processes using EnumProcesses() and inspect their filenames using GetModuleFileNameEx().
/ravi
"There is always one more bug..."
ravib@ravib.com
http://www.ravib.com
|
|
|
|
|
|
Hi,
My MFC dialog app, for initialisation, needs to load and process a large file, and operation which takes about 20 seconds.
I decided to make a new dialog class, CLoad. This dialog class implements worker threads to do the load, and displays a status bar for the user.
In CMyApp::InitInstance():
CLoad load_dlg;
CMainDlg dlg;
m_pMainWnd = &load_dlg;
load_dlg.DoModal();
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if (nResponse == IDOK) .......
Basically, i DoModal() on my loading dialog, i call EndDialog() from within that dialog to close it when the loading is finished. Then, the second (main) dialog should be shown. But the dlg.DoModal() returns immediately and the dialog is not shown. Is this because I'm closing the main dialog with EndDialog() ?
I really don't know why my dialog is not showing.
Any ideas?
Sorry to dissapoint you all with my lack of a witty or poignant signature.
|
|
|
|
|
If you want to show a dialog box before the main dialog box you CAN create a CLoad object in the OnInitDialog(...) but do it do the call before every other inits:
BOOL CMyDlg::OnInitDialog();
{
// Show a dialog before the main dialog appears
CLoad load_dlg;
int ret = load_dlg.DoModal();
if( ret == IDOK) // The user closed the dialog by hitting button with ID: IDOK
{
// do something or do nothihng with the return value
}
// Here comes all other stuff
LoadIcon(m_hIcon, TRUE);
...
return TRUE;
}
------------------------------
©0d3 ©®4©k3® - That's me!
------------------------------
|
|
|
|
|
Does anyone know the maximum number of files allowed in a single directory under win95 and under NT? I tried to find this in MSDN, MS Knowledge base etc, but I couldn't find it. Is there even a limit? I know there is a maximum number of files allowed in a root dir, but is there a maximum for any directory under the root? If there is no maximum number of files, is there a rough number of files I should allow the user to create under a directory (isues of stability etc.) My program reads a database and allows the users to create a backup of that database, but I want to watch them and make sure they don't exceed either a maximum number of allowed files, or a number of recommened files to keep the system stable.
|
|
|
|