|
I have my WTL app's menu inside a CommandBar control. Now I want to process some notifications it sends but it doesn't seem to send them to the parent. How can i make it send these notifications to the parent or is there a better way for daeling with this???
|
|
|
|
|
Hi All,
I’m handling events of ADO in an ATL out-of-process server, and for some reasons when I use _ATL_FREE_THREADED declaration event ConnectComplete is not called when I establish an asynchronous connection, thou it is called when I use a synchronous connection. Changing the memory model to _ATL_APARTMENT_THREADED solves the problem, but what is the reason of such strange behaviour anyway, and what’s the
proper solution?
Regards,
Vitaly Tomilov
|
|
|
|
|
Hi:
I want to use IE/Explorer toolar band in my application, is it possible?
Could you give me some ideas?
thanks
benben
|
|
|
|
|
I want return a recordset for script, in c++ this type is _RecordsetPtr, I don't know how to convert it for script variable.
|
|
|
|
|
Return a variant of type IDispatch to the script.
|
|
|
|
|
How to make my control support set/get property by "=".
Thank you very much!
|
|
|
|
|
Are you thinking of something like __declspec(property) ?
--Mike--
Yeah, payin' the bills with my mad programming skillz.
Defraggin' my hard drive for thrills.
Homepage | RightClick-Encrypt | 1ClickPicGrabber
"You have Erica on the brain" - Jon Sagara to me
|
|
|
|
|
Sorry for posting code here, but someone asked me about a week ago for some code, but I can't find the request now (the CP comment search doesn't search for a whole phrase, so I can't narrow down the results enough to find the one I want).
Anyhoo, to add support for radio-checked menu items only takes a few lines, however if you don't want to modify atlframe.h, you need to make a CUpdateUI2 class and copy over 3 functions from CUpdateUI . Here's the entire class, my changes are marked with //*** BEGIN and //*** END
template <class T>
class CUpdateUI2 : public CUpdateUI<T>
{
public:
BEGIN_MSG_MAP(CUpdateUI2<T> )
MESSAGE_HANDLER(WM_INITMENUPOPUP, OnInitMenuPopup)
if ( WM_INITMENUPOPUP != uMsg )
{ CHAIN_MSG_MAP(CUpdateUI<T> ) }
END_MSG_MAP()
LRESULT OnInitMenuPopup(UINT , WPARAM wParam, LPARAM , BOOL& bHandled)
{
bHandled = FALSE;
HMENU hMenu = (HMENU)wParam;
if(hMenu == NULL)
return 1;
_AtlUpdateUIData* pUIData = m_pUIData;
if(pUIData == NULL)
return 1;
::SetMenuDefaultItem(hMenu, (UINT)-1, 0);
const _AtlUpdateUIMap* pMap = m_pUIMap;
while(pMap->m_nID != (WORD)-1)
{
if(pMap->m_wType & UPDUI_MENUPOPUP)
UIUpdateMenuBarElement(pMap->m_nID, pUIData, hMenu);
pMap++;
pUIData++;
}
return 0;
}
BOOL UIUpdateMenuBar(BOOL bForceUpdate = FALSE, BOOL bMainMenu = FALSE)
{
if(!(m_wDirtyType & UPDUI_MENUBAR) && !bForceUpdate)
return TRUE;
const _AtlUpdateUIMap* pMap = m_pUIMap;
_AtlUpdateUIData* pUIData = m_pUIData;
if(pUIData == NULL)
return FALSE;
while(pMap->m_nID != (WORD)-1)
{
for(int i = 0; i < m_UIElements.GetSize(); i++)
{
if(m_UIElements[i].m_wType == UPDUI_MENUBAR)
{
HMENU hMenu = ::GetMenu(m_UIElements[i].m_hWnd);
if(hMenu != NULL && (pUIData->m_wState & UPDUI_MENUBAR) && (pMap->m_wType & UPDUI_MENUBAR))
UIUpdateMenuBarElement(pMap->m_nID, pUIData, hMenu);
}
if(bMainMenu)
::DrawMenuBar(m_UIElements[i].m_hWnd);
}
pMap++;
pUIData->m_wState &= ~UPDUI_MENUBAR;
if(pUIData->m_wState & UPDUI_TEXT)
{
free(pUIData->m_lpData);
pUIData->m_lpData = NULL;
pUIData->m_wState &= ~UPDUI_TEXT;
}
pUIData++;
}
m_wDirtyType &= ~UPDUI_MENUBAR;
return TRUE;
}
static void UIUpdateMenuBarElement(int nID, _AtlUpdateUIData* pUIData, HMENU hMenu)
{
MENUITEMINFO mii;
memset(&mii, 0, sizeof(MENUITEMINFO));
mii.cbSize = sizeof(MENUITEMINFO);
mii.fMask = MIIM_STATE;
mii.wID = nID;
if(pUIData->m_wState & UPDUI_DISABLED)
mii.fState |= MFS_DISABLED | MFS_GRAYED;
else
mii.fState |= MFS_ENABLED;
if(pUIData->m_wState & UPDUI_CHECKED)
mii.fState |= MFS_CHECKED;
else
mii.fState |= MFS_UNCHECKED;
if(pUIData->m_wState & UPDUI_DEFAULT)
mii.fState |= MFS_DEFAULT;
if(pUIData->m_wState & UPDUI_RADIO)
{
mii.fMask |= MIIM_FTYPE;
mii.fState |= MFS_CHECKED;
mii.fType |= MFT_RADIOCHECK;
}
else
mii.fMask |= MIIM_FTYPE;
if(pUIData->m_wState & UPDUI_TEXT)
{
MENUITEMINFO miiNow;
memset(&miiNow, 0, sizeof(MENUITEMINFO));
miiNow.cbSize = sizeof(MENUITEMINFO);
miiNow.fMask = MIIM_TYPE;
miiNow.wID = nID;
if(::GetMenuItemInfo(hMenu, nID, FALSE, &miiNow))
{
mii.fMask |= MIIM_TYPE;
mii.fType |= (miiNow.fType & ~(MFT_BITMAP | MFT_SEPARATOR)) | MFT_STRING;
mii.dwTypeData = (LPTSTR)pUIData->m_lpData;
}
}
::SetMenuItemInfo(hMenu, nID, FALSE, &mii);
}
};
--Mike--
Yeah, payin' the bills with my mad programming skillz.
Defraggin' my hard drive for thrills.
Homepage | RightClick-Encrypt | 1ClickPicGrabber
"You have Erica on the brain" - Jon Sagara to me
|
|
|
|
|
How can I connect a client application running behind a proxy to a web server?
The connection cannot be a direct TCP to the server as the proxy is in between. I can have a Http connection , the way a browser works. But how do I achieve it. Any suggestions??
|
|
|
|
|
simply enough - create a tcp connection to the proxy machine and then send your request as usual. Only difference is, that the request should be in a 'full' form. Instead of:
<br />
GET /page.htm HTTP/1.1<br />
...
you'd use:
GET www.codeproject.com/page.htm HTTP/1.1<br />
...
I'm not sure about the http: prefix, but you can check it in RFC.
Then the proxy you are connected to, simply parses the URL from the request and forward it to the right machine.
This is mostly all you have to do. If you want to be absolutely correct, there are some client-proxy specific headers like 'Proxy-Authentication ' etc. but these are also described in RFC.
Hope this helps
|
|
|
|
|
What I have read about Http CONNECT is that it is used to establish a secure connection to the server.Does that mean that I can connect only to port 443 of the Listner i.e. server?
Can I connect to the port 80 of the server i.e specify the ip address:80 in the CONNECT method
|
|
|
|
|
CONNECT is used for creating a tunnel through the proxy - useful mostly for secure connections. It simply tells the proxy that it have to make connection to the server & port you specified - the syntaxe addr:port should be valid then. I will try to clarify the intent of the command CONNECT :
Normally the proxy 'understands' the flow of the http connection, and time to time he even changes it - e.g. instead of requesting the page from the server it sends the page from the local cache etc.
But when using the CONNECT command, this is not true and the connection is then transparent - what you send to the server is what the server receive and vice versa.
This is the reason, why it is used when secured channel is needed. Because if the proxy will try to change the encrypted data (e.g. take the encrypted page from the cache) it will make an error during the decryption on the client (this is a must, else the secure channel will not be secure ).
So, yes, as far as I know, you can connect to the port 80 of the server through the CONNECT , but then the pages will not be cached (which can be as well advantage as disadvantage ).
Only take a care, that there are some proxies, that doesn't support the CONNECT command, or doesn't support it correctly. But I think currently most of them do.
Hope this helps
|
|
|
|
|
I have a SDI app and I want to open a new SDI UI with a new toolbar, a new statebar and a new view by running a command from the menu (or by any other methods).How can i make this and how can i send messages and value of variables between the two windows.Thanks.
modified 1-May-21 21:01pm.
|
|
|
|
|
Assuming you already have a CFrameWindowImpl -derived class written, create a new instance of it, and call CreateEx() just like you do for the app's main window.
One thing you have to do in the new class is not let WM_DESTROY get passed to CFrameWindowImpl , because CFrameWindowImpl::OnDestroy() calls PostQuitMessage() which will make the app close.
--Mike--
Yeah, payin' the bills with my mad programming skillz.
Defraggin' my hard drive for thrills.
Homepage | RightClick-Encrypt | 1ClickPicGrabber
"You have Erica on the brain" - Jon Sagara to me
|
|
|
|
|
Hello to all.
I´m new here, but have the first question.
I need to creat an ATL dll to add like a toolbar in the internet explorer.
I have a site like a yahoo for search, but only for internal domains. then I need to create the dll to when the user types one address in the address toolbar of internet explorer, the explorer find in my server, and my server if not found domain redirect to internet. but need to search in my server first, how i can do this. ?
Someone have a sample ou something ?
best regards..
Leandro Delamare
|
|
|
|
|
I downloaded a STL library that was modified for use with PocketPC, and I'm trying to compile my app.
I'm getting the following compiler errors:
stl_tree.h(105) : error C2146: syntax error : missing ';' before identifier 'iterator_category'
stl_tree.h(105) : error C2501: 'iterator_category' : missing storage-class or type specifiers
stl_tree.h(106) : error C2146: syntax error : missing ';' before identifier 'difference_type'
stl_tree.h(106) : error C2501: 'difference_type' : missing storage-class or type specifiers
stl_tree.h(200) : error C2146: syntax error : missing ';' before identifier 'iterator_category'
stl_tree.h(200) : error C2433: 'bidirectional_iterator_tag' : 'inline' not permitted on data declarations
stl_tree.h(200) : error C2501: 'bidirectional_iterator_tag' : missing storage-class or type specifiers
stl_tree.h(200) : fatal error C1004: unexpected end of file found
I honestly don't know where to look for the problem. I haven't mucked around with the stl code, so as far as I know, it should compile just fine.
Can anyone provide any clues for me?
------- signature starts
"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
Please review the Legal Disclaimer in my bio.
------- signature ends
|
|
|
|
|
Seems like you might need to #include <iterator> (a shot in the dark, of course).
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
I'd already tried that.
------- signature starts
"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
Please review the Legal Disclaimer in my bio.
------- signature ends
|
|
|
|
|
You probably already have tried this or have reasons not to, but about a year ago we tried STLPort with the PocketPC and didn't have any problems with the trees and such.
Tim Smith
I'm going to patent thought. I have yet to see any prior art.
|
|
|
|
|
I had a similar problem, and what I found that I needed to do was typedef my iterator object type, or do a using namespace std .
With the typedef I usually do something like this:
typedef set<int> setInt;
typedef setInt::iterator iterSetInt;
And that solved my problems.
Good Luck
Build a man a fire, and he will be warm for a day Light a man on fire, and he will be warm for the rest of his life!
|
|
|
|
|
I have something to the effect of this:
<br />
typedef map<String, variable> list;<br />
list vars;<br />
<br />
class my_class {<br />
public:<br />
my_class() {}<br />
void function() {<br />
vars.insert(pair<String, variable>((String("hi"), variable(6)));<br />
}<br />
};
This compiles fine; no errors. It runs up until I call my_class.function() tries to insert and then it freezes. However, if I move the move the map declaration into function() and make it local, it runs fine. But doesn't do me any good and I lose the data when the function ends.
Anyone know why this is happening? Is this supposed to happen? Is there a way around it?
Thanks for any help you can give.
|
|
|
|
|
If the my_class memory has become trashed, then insert could fail in the manner you describe.
Tim Smith
I'm going to patent thought. I have yet to see any prior art.
|
|
|
|
|
the variable class is a little memory extensive. If you declare overloaded operators outside of the class (ex. bool operator==(variable var, variable other) ) does it count towards the size of the class? I don't think it does, I just want to be sure
|
|
|
|
|
vars.insert(pair<String, variable>(<font color=#ff0000>(</font>String("hi"), variable(6)<font color=#ff0000>)</font>); Try removing the extra pair of parentheses marked in red.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
i need those parentheses.
It works now. I moved things around and lowered the class size and it seems to be working now.
|
|
|
|