|
Are you calling the base class OnInitDialog() before trying to use the m_wndBrowser ?
Also, I assume that the m_pBrowserApp variable is set back to NULL at appropriate times, so that your tests are valid.
|
|
|
|
|
The code I showed was from the base class implementation not from my code. I only included it to illustrate where the problem was occurring. I'm not touching any of the members of the CDHtmlDialog class. That's why I'm confused by what is happening because none of my code does anything other than call CDHtmlDialog::OnInitDialog() .
|
|
|
|
|
This seems a bit strange.
If your code is encapsulated enough, can you post the example of where/how you create the dialog instance and where you call DoModal() and anything you do to the dialog class instance between creating the instance and calling DoModal()?
It seems like sometimes either the browser widnow is not crated or the browser pointer is not null. Can you look into why that might be the case? It seems strange to me that the base class code does not verify that the create window call succeeds prior to trying to create the com interface.
|
|
|
|
|
Did you ever figure out what was going on? I'm having the same issue...or very close..
ed
~"Watch your thoughts; they become your words. Watch your words they become your actions.
Watch your actions; they become your habits. Watch your habits; they become your character.
Watch your character; it becomes your destiny."
-Frank Outlaw.
|
|
|
|
|
Just been taking a quick look over the SDK for DirectX and see that it has support for DVDs. Does anyone know whethere its possible to use the API to grab images from a DVD?
Cheers
|
|
|
|
|
Hi,
I'm trying to fire an even from an C++ ActiveX that has a "by reference" parameter:
dispinterface _IMyEvents
[id(4)] void ButtonClicked(IMyProperty * prop, [in, out, ref] VARIANT_BOOL * bDataChanged);
However, the Fire_Event proxy code generated by the wizard complains about the byref value:
pvars[0] = bDataChanged;
it's just a warning (short * truncated to bool), but it clearly indicates it doesn#t work as intended (CComVariant does not support reference values).
So - anything I can do?
The only alternatives I see are:
- write the fire_xxx wrapper myself (yuck!!!)
- provide a COM object with a "SetModified" flag instead (seems overkill)
- hack CComVariant into accepting a VARIANT_BOOL * as BYREF value (yuck yuck)
(The mechanism I need is similar to IPropertyNotifySink, but I want to support VB clients, so I can't work with S_OK / S_FALSE return value)
Pandoras Gift #44: Hope. The one that keeps you on suffering. aber.. "Wie gesagt, der Scheiss is' Therapie" boost your code || Fold With Us! || sighist | doxygen
|
|
|
|
|
ALOK
I WANT TO CONVERT BACK A BSTR FILE TO A STRING FILE. IS IT POSSIBLE to CONVERT BSTR TO WIDE CHARACTER AND THEN (USING WideCharToMultiByte )TO CHARACTER
|
|
|
|
|
There are many ways to convert BSTR TO STRING , here i am mentioning TWO!
1.wcstombs(...)
2.using String Conversion Macro LIKE W2T ,T2BSTR ....., but you have to enable String Conversion Macro by using USES_CONVERSION; macro
yeah you can use
WideCharToMultiByte , but this api always confuse me lot!
[Vote One Here, Complete my Survey....]
Alok Gupta visit me at http://www.thisisalok.tk
"I Think Believe this Will Help"
|
|
|
|
|
BSTR AND WIDECHARACETR(UNICODE) R SAME.
|
|
|
|
|
Buddy!
BSTR and Wide Character has almost same format for character representation. so you can use wcstombs or string conversion macro stated above!! to convert them from wide character to multibyte character string, just try!!!
or if you are using MFC , CString expose some function for BSTR tooo,like CString::SetSysString , CString::AllocSysString
[Vote One Here, Complete my Survey....]
Alok Gupta visit me at http://www.thisisalok.tk
"I Think Believe this Will Help"
|
|
|
|
|
Please don't shout! My ears hurt.
/ravi
My new year's resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
BSTR is just a WORD string (16 bits for each value).
if the BSTR contains 0 (zero), you can not convert it to CString because CString can not contain zero.
if not, do this way:
//assume length of BSTR is iNum
//cs is CString, bstr is BSTR
for(i=0;i<iNum;i++)
{
cs+=(char)bstr[i];
}
very easy
includeh10
|
|
|
|
|
I am using the Following code :
When i call it first time to copy data , then i paste it in any MS word or Excel it works , On Second time when i copy the data the Program Crashes At the statment :
/////pData->SetClipboard();
CopyData()
{
CDC* dcRef = GetDC();
tagSTGMEDIUM * data;
data = new tagSTGMEDIUM;
CMetaFileDC * dcMeta;
dcMeta = new CMetaFileDC();
if(!dcMeta)
{
AfxMessageBox("Unable to Load data on Clipboard");
return;
}
COleDataSource* pData = new COleDataSource;
//replace "ImageName" with a description of this image
dcMeta->CreateEnhanced(dcRef, NULL, NULL,"Cca-Graph" );
dcMeta->SetMapMode(MM_TEXT);
dcMeta->SetAttribDC(dcRef->m_hAttribDC);
//actually draw to the device context
CRect rcWnd;
GetClientRect(&rcWnd);
//draw meta file :: do what ever you want to do: bitmaps, lines, text...
DrawChart(dcMeta, rcWnd, false);
//done drawing
data->tymed = TYMED_ENHMF;
data->hEnhMetaFile = dcMeta->CloseEnhanced();
pData->CacheData( CF_ENHMETAFILE, data );
////////////// Crashes Here when called Second time //////////////////////
pData->SetClipboard();
// Release the meta file attributes
dcMeta->ReleaseAttribDC();
delete dcMeta;
delete data;
}
Regards.
|
|
|
|
|
So have you stepped into the SetClipboard() call to see why it is crashing?
zahid_ash wrote:
COleDataSource* pData = new COleDataSource;
Where is the corresponding delete ?
I don't see much error checking. Are all calls to new successful?
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
It is showing Access Violation in OLE32.DLL
What the problm is it ?
thanx
Regards.
|
|
|
|
|
zahid_ash wrote:
It is showing Access Violation in OLE32.DLL
Are you saying that it crashes before going into the SetClipboard() method, or that it crashes while inside it?
zahid_ash wrote:
What the problm is it ?
At this point it could be any number of things. Not enough information is known yet.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
It Crashes While going in side the SetClipboard() ;
thanx
Regards.
|
|
|
|
|
What about the other two questions I asked?
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Sorry i not Read your this question in hurry
COleDataSource* pData = new COleDataSource;
Where is the corresponding delete?
new is successfull.
Its am not deleting it ? Where should i delete it in the above code.
thanx
Regards.
|
|
|
|
|
zahid_ash wrote:
new is successfull.
But there is no guarantee that it will be. If it fails, any attempt to dereference pData will result in some sort of crash.
zahid_ash wrote:
Where should i delete it in the above code.
After it is no longer needed.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Is PData is required till we paste the image some where.
or We can delete it as we copy the image .
As i am doing i Copy the image and then paste it to MS Word .
and then come back again and then As i copy the Image again it Crashes down .
So where I should Delete it / I m not sure where it is no longer needed .
As i found no clue about it on MSDN on ClipBoard topic. they not mentioned where to delete it .
thanx
Regards.
|
|
|
|
|
zahid_ash wrote:
So where I should Delete it / I m not sure where it is no longer needed .
A variable is no longer needed after it is no longer used. That has the makings of a tongue twister, but think about it slowly and it will make sense.
After you have used pData for the last time, its memory can be freed.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
How does one remove tool settings programmatically?
I have added the following tool setting:
var CLTool = config.Tools('VCCLCompilerTool');
CLTool.PreprocessorDefinitions = "_CONSOLE";
now how do I remove it other than by manipulating the string?:
var strValue = CLTool.PreprocessorDefinitions;
and now removing the substring - '_CONSOLE' from strValue.
I was thinking of using |= or &=.
I am the handsome one in the crowd.
|
|
|
|
|
laugh:i am using Hooking concept in my application for capturing all the mouse events around the system and sending that message to tts machine to speak out. Now i am posed one problem.i am using Insert + a keys to execute one function but if i press insert + a it's also spelling out insert key name. How to avoid this problem
Thanking you..
E.Veera Raghavendra
E.Veera Raghavendra
|
|
|
|
|
this function does the job when the keys are pressed while the application is on focus. maybe this will give you an idea. you can do something similar on the application side, within the function, which catches your hooking messages from the hooking dll.
BOOL CMyDialog::PreTranslate(MSG *pMsg)
{
if(pMsg->message==WM_KEYDOWN)
{
if(pMsg->wParam==VK_ESCAPE)
return TRUE;
elsif (GetAsyncKeyState(VK_INSERT) < 0 && (pMsg->wParam=='A'))
return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}
|
|
|
|