|
You could always Base64 encode your blobs and store them in the XML node structure....
onwards and upwards...
|
|
|
|
|
hm, what does it mean base64 encode?
do u've a sample?
4apai
There're no impossible tasks. There're tasks that required infinite period of execution time.
|
|
|
|
|
I' using visual C++ to add a feature to my program, that enables the user to right-click on any menu item, and the corresponding topic is opened in a *.chm type manual i have already created.
I don't have any clue on how to do this , or if other programming languages are necessary like XML, Java,, etc. But if anyone can offer any ideas on how to this, please let me know.
Thanks for your time,
Eduardo M. Rey
Ed
|
|
|
|
|
If you can already process the right click on the menu item, then you just need to read about the HTMLHelp function.
You need some scheme to map the menu item identifier to the help topic in your CHM file, of course.
|
|
|
|
|
Thanks for your response, it was very helpful.
Brief, and informative.
Ed
|
|
|
|
|
I am writing a database application, I use the MS ODBC driver for Oracle. I want to view, edit add/delete records on a Oracle database. After I building the executable, there was NO error, but when I ran the EXE, I knew the database had been connected and opened correctly, because the messagebox had been prompted and showing "the database has been opened", but in the next step, an error messagebox prompted, showing the Runtime-Library error. I don't know where is wrong, and need some help, Thanks!
Here is the code for openning the database and table.
CDatabase m_db;
BOOL flag=FALSE;
flag=m_db.Open(_T("OracleDSN"), FALSE,FALSE,_T("ODBC;UID=ADMIN"));
if(flag)
MessageBox("the database has been opened");
else
MessageBox("failed to open the database");
CRecordset m_recordset(&m_db);
m_recordset.Open(CRecordset::forwardOnly, "select * from table_1");
|
|
|
|
|
chocm wrote:
...but in the next step...
Which statement exactly?
chocm wrote:
I don't know where is wrong, and need some help, Thanks!
Simply place a breakpoint on the CRecordset m_recordset(&m_db) statement and single-step through the code from that point.
I notice you are not handling exceptions, especially CDBException . Why? These go a long way in tracking down problems like you are currently experiencing.
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
I have set breakpoint, but it showed no info that is helpful, I still don't know where is wrong.
|
|
|
|
|
But I still get no helplful info by stepping
|
|
|
|
|
Did you (still) get a runtime error? Is it reproducible (at a particular statement)? Did you implement a try/catch block?
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
I’m trying to get a handle to an wrapped ActiveX class like this:
(The ActiveX is running inside AutoCad.)
<br />
_DDataBaseTreeView *pPE;
HRESULT res;<br />
<br />
CLSID clsid;<br />
<br />
CLSIDFromProgID(L"NetModeler.DataBaseTreeView.1", &clsid); <br />
IUnknown *pUnk = NULL;<br />
IDispatch *pDisp = NULL;<br />
<br />
HRESULT hr = GetActiveObject(clsid, NULL, (IUnknown**)&pPE);
<br />
if(SUCCEEDED(hr)) <br />
{<br />
hr = pUnk->QueryInterface(IID_IDispatch, (void**)&pDisp ); <br />
if( SUCCEEDED(hr) )<br />
{<br />
}<br />
<br />
}<br />
<br />
_variant_t var;<br />
<br />
<br />
var = pPE->Func();
What have I missed?
I want to have a handle to an already running ActiveX inside AutoCad.
_____________________________
...and justice for all
APe
|
|
|
|
|
QueryInterface must query the interface it needed:
pUnk->QueryInterface(IID_IAUTOCAD_OR_SMTH_ELSE, (void**)&pDisp);
4apai
There're no impossible tasks. There're tasks that required infinite period of execution time.
|
|
|
|
|
where do I find that:
4apai wrote:
IID_IAUTOCAD_OR_SMTH_ELSE
_____________________________
...and justice for all
APe
|
|
|
|
|
first try to find it via typing ::(Ctrl+space) - this will list all the objects in the current namespace
4apai
There're no impossible tasks. There're tasks that required infinite period of execution time.
|
|
|
|
|
Ok.
Now I, in some way, get it to work with IID_IDispatch...
_____________________________
...and justice for all
APe
|
|
|
|
|
Hi All,
Could anyone pleae provide me sample application for binarytree creation, search, delete and list all items.
Thanks in Advance.
Be simple and Be sample.
|
|
|
|
|
http://www.google.com.ua/search?hl=uk&ie=UTF-8&q=binary+tree+c%2B%2B+code+sample&meta=
4apai
There're no impossible tasks. There're tasks that required infinite period of execution time.
|
|
|
|
|
Is there any way we can underline some of the items
of a listbox ??
if yes, then how ???
|
|
|
|
|
|
hi davey,
what exactly i want is that,
a listbox which have some of the url's as items
so when i double click that item data i can go
straight away to the web page.
for that i need some of my item data(not all) to be underlined so that it depicts a URL.
bye
|
|
|
|
|
hello,
try handling the NM_CUSTOMDRAW message. This is a lot easier than owner draw. also you can specify which cell to modify.
There some really great tuts around here. Please take a look in the list control topics section.
|
|
|
|
|
Hi all,
I am new to InstallShield Developer 7...I would like to know how to launch multiple .msi from a master .msi file / setup.exe....
also I need to have the progress bar UI dialog during the lauches..
one for each .msi
another for overall installation progress...
I started going thru the help, but at the meantime, if someone can give me this info, it will be very helpful for me...
Thank you,
Shiva P
|
|
|
|
|
hi,
i was creating a server from CSocket but whenever the client connects to the server, my server dialog box will automatically close itself. i wonder of there is anything wrong with my code?
i have a mysocket class, below is part of the code:
void mysocket::OnAccept(int nErrorCode)
{
if ( nErrorCode == 0 )
( ( CMultiAPIDlg* ) m_pWnd ) -> onaccept( ) ;
CSocket::OnAccept(nErrorCode);
}
in my code for the dialog box, when user press connect, the following function is evoked:
void CMultiAPIDlg::OnBConnect()
{
m_connectsocket.Create ( 0 ) ;
m_connectsocket.Connect ( m_server, m_port) ;
}
and the onaccept function is:
void CMultiAPIDlg::onaccept()
{
AfxMessageBox("Connected");
m_listensocket.Accept ( m_connectsocket ) ;
}
somehow, when the client connects to the server, the server dialog box will automatically close itself... can anyone help?
|
|
|
|
|
honestly, i didnt work with sockets via MFC, but in DOS serverside app this looks like following call-sequence:
1. bind
2. listen
3. accept
4. recv/send
i think it wouldn't differ enough with an MFC algorythm...
4apai
There're no impossible tasks. There're tasks that required infinite period of execution time.
|
|
|
|
|
Okay I'm going to make an attempt to answer this.
Anonymous wrote:
void CMultiAPIDlg::OnBConnect()
{
m_connectsocket.Create ( 0 ) ;
m_connectsocket.Connect ( m_server, m_port) ;
}
This should be a create then a listen. Like this
void CMultiAPIDlg::OnBConnect() <br />
{<br />
m_listensocket.Create ( m_port ) ;<br />
m_listensocket.Listen ( ) ;<br />
}
The Create is where you specifiy what port you want your server listening on. Next you must listen for a connection. Also to make it easier switch your class reference around to reflect your app. For servers they listen, for clients they connect. So in the code above I switched the references around. Now just accept your connection just like you have it.
One last suggestion in your mysocket class, in the onconnect, I would do something like this:
if (nErrorCode != 0)<br />
{<br />
switch( nErrorCode )<br />
{<br />
case WSAEADDRINUSE: <br />
AfxMessageBox("The specified address is already in use.\n");<br />
break;<br />
case WSAEADDRNOTAVAIL: <br />
AfxMessageBox("The specified address is not available from the local machine.\n");<br />
break;<br />
case WSAEAFNOSUPPORT: <br />
AfxMessageBox("Addresses in the specified family cannot be used with this socket.\n");<br />
break;<br />
case WSAECONNREFUSED: <br />
AfxMessageBox("The attempt to connect was forcefully rejected.\n");<br />
break;<br />
case WSAEDESTADDRREQ: <br />
AfxMessageBox("A destination address is required.\n");<br />
break;<br />
case WSAEFAULT: <br />
AfxMessageBox("The lpSockAddrLen argument is incorrect.\n");<br />
break;<br />
case WSAEINVAL: <br />
AfxMessageBox("The socket is already bound to an address.\n");<br />
break;<br />
case WSAEISCONN: <br />
AfxMessageBox("The socket is already connected.\n");<br />
break;<br />
case WSAEMFILE: <br />
AfxMessageBox("No more file descriptors are available.\n");<br />
break;<br />
case WSAENETUNREACH: <br />
AfxMessageBox("The network cannot be reached from this host at this time.\n");<br />
break;<br />
case WSAENOBUFS: <br />
AfxMessageBox("No buffer space is available. The socket cannot be connected.\n");<br />
break;<br />
case WSAENOTCONN: <br />
AfxMessageBox("The socket is not connected.\n");<br />
break;<br />
case WSAENOTSOCK: <br />
AfxMessageBox("The descriptor is a file, not a socket.\n");<br />
break;<br />
case WSAETIMEDOUT: <br />
AfxMessageBox("The attempt to connect timed out without establishing a connection. \n");<br />
break;<br />
default:<br />
TCHAR szError[256];<br />
wsprintf(szError, "OnConnect error: %d", nErrorCode);<br />
AfxMessageBox(szError);<br />
break;<br />
}
That way you know why your not connecting.
Hope this helps
Tom Wright
tawright915@yahoo.com
|
|
|
|