|
Hello
I've written a logfile class that writes the logentries in xml format.
A typical usage:
mylog.WriteLog(LOG_PRIO_HIGH, "Agroup", "This is a text with %d some %s
vars", 34, "diffrent");
output
<entry date="2003-01-01" time="20:01:32:1234" prio="1"
group="Agroup">This is a text with 39 some diffrent vars</entry>
I want to accomplish the same thing by using streams/stringbuf.
But I've not found any good examples that show me how I should do.
What i've found is a couple of examples that derives a class from stringbuf and from ostream.
I would be nice of I can get something like this:
log << log_prio(1) << log_group("test") << "hello" << nIntVar << strBuf << log_end;
log << "this is a string";
log << " something more" << log_end;
log << log_prio(2) << "last line" << log_end;
would look like:
<entry date="2003-01-01" time="20:01:32:1234" prio="1" group="test">hello1yeye</entry>
<entry date="2003-01-01" time="20:01:32:2200" prio="1" group="test">this is a string something more</entry>
<entry date="2003-01-01" time="20:01:32:6600" prio="2" group="test">last line</entry>
How do I accomplish this?
Thanks,
Jonas
|
|
|
|
|
Hi All,
suppose we are on IE and we right click to open the new ie window there or use shift + click...that opens IE in new window..I want to implement such a thing that when anyone clicks on a link that opens new window or he intentionally opens it in new window..the new window shud not appear..I found something like:::
void CDWebBrowserEvents::OnNewWindow(BSTR URL, long Flags, BSTR TargetFrameName, VARIANT* PostData, BSTR Headers, BOOL FAR* Processed)
{
if (m_Browser) {
COleVariant varEmpty;
*Processed = TRUE;
m_Browser->Navigate((LPCSTR)URL, &varEmpty, &varEmpty, &varEmpty, &varEmpty);
}
}
this function call doesnt seem to work as..when I click on new window..the event is fired...but it shows an exception in *processed=true; I tried changing the definition of newwindow..but that also doesnt work becz then the function never gets called...I need it very urgently...Any help or pointers are highly appreciated..Thanks a lot in advance..
Himanshu
|
|
|
|
|
If you are getting an exception at: *Processed = TRUE; then I would assume Processed is NULL and you need:
if ( Processed != NULL )
*Processed = TRUE;
Not testing pointers for NULL is a dangerous game to play.
Neville Franks, Author of ED for Windows. Free Trial at www.getsoft.com
|
|
|
|
|
Hi Neville,
I have developed an application and I want to load it at startup..I have
done that..but it takes some time to load..I want the process to be fast and
user is not able to access the desktop in the meantime before seeing my
application..is there anyone who can help me out..any help or pointers are
highly appreciated..Thanks a lot in advance..I am on win2000. And I really
need to do it fast..plz help
there is another small problem..I am using a webbrowser control to open
IE..and I want that when user clicks on a link that opens a new window or
just rightclicks to open in new window..the new window should not
appear..there I got some code which does that...which is like::
DISP_FUNCTION_ID(CWebBrowser2, "NewWindow2",DISPID_NEWWINDOW2,
OnNewWindow2, VT_EMPTY, VTS_DISPATCH VTS_PBOOL)
DISP_FUNCTION_ID(CWebBrowser2, "NewWindow2",DISPID_NEWWINDOW2,
OnNewWindow2, VT_EMPTY, VTS_BSTR VTS_I4 VTS_BSTR VTS_PVARIANT VTS_BSTR
VTS_PBOOL)
When i use first def. it works ok and putting cancel=true works and no new
window opens. but that breaks th eexecution of program and hence i need to
open the same url in parent window..so when i use second definition the
function is never called..I want to know whether there is anything wrong
with the definition or what..whatever u said must work..but if once the
function is called then only i will be able to know that it is working or
not..m_pBrowserApp is an object of IWebBrowser2..
virtual void OnNewWindow2(LPDISPATCH FAR* ppDisp, BOOL* Cancel);
// virtual void OnNewWindow2(BSTR URL, long Flags, BSTR
TargetFrameName,VARIANT* PostData, BSTR Headers, BOOL FAR* Processed);
Please let me know where I am wrong..
Thanks a lot..waiting for ur reply..
Himanshu
Himanshu
|
|
|
|
|
|
Hi all, I have a simple dialog class that has a combo box, and a few edit ctrls, i connect them to CEdit and CComboBox classes etc. and i have my dialog catch the combobox events by COMMAND_ID_HANDLER(IDC_COMBO, OnCombo) and in OnCombo, depending on what they select i fill in the other edit ctrls with values, and i want to set the combobox ctrl text to a different value then what was selected by the user. but whenever i try this, just by CComboBox.SetWindowText("blah") it never works, all the other editctrls change to what i set them, but not the combobox. any ideas anyone ?
thanks
luke.
|
|
|
|
|
Hello all,
I'm having troubles positioning my current record indicator programmicaly on the last record.
Let's say I have a CListCtrl in report mode, Filled with some records.
I have a button which inserts a new record in the list, and I want to position the record indicator (that blue line) on the newly inserted record.
I tried:
m_cListCtrl.EnsureVisible(m_cListCtrl.GetItemCount()-1, FALSE);<br />
m_cListCtrl.SetItemState(m_cListCtrl.GetItemCount()-1, LVIS_SELECTED, LVIS_SELECTED);<br />
m_cListCtrl.SetSelectionMark(m_cListCtrl.GetItemCount()-1);<br />
which shows me the record, the blue line is in the correct position, but my focus isn't. When I press Up, the record indicator jumps back 2 positions.
What is the correct way to do this positioning?
|
|
|
|
|
Wim Jans wrote:
m_cListCtrl.SetItemState(m_cListCtrl.GetItemCount()-1, LVIS_SELECTED, LVIS_SELECTED);
How about:
m_cListCtrl.SetItemState(m_cListCtrl.GetItemCount()-1, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
|
|
|
|
|
Easy but efficient
Thanks!
|
|
|
|
|
What's the difference between:
String* __gc SomeMemberFunc()
and
String __gc * SomeMemberFunc()
Thanks.
norm
|
|
|
|
|
HI All,
Can anyone tell me how can i write the foll VB syntax in VC++ :
DataGrid1.Columns(0).Value = "Sid"
thanx,
Sid.
|
|
|
|
|
Hi
i seem to be getting an intermitant error
in my application when i send XML posts to our
web service
the error is
Run-time error '-2146697211 (800c0005)'
does ne1 have any ideas ? it only seems to happen
ocassionally
thnkas
si
|
|
|
|
|
I need to create new outlook express button, that do something, can you tell me where to start? I can't imagine where to find informations about this. Tried search engines, groups, but find no information on this topic.
|
|
|
|
|
What do you call a Outlook Express button? The button from a toolbar or what?
Best regards,
Eugene Pustovoyt
|
|
|
|
|
Yes, I meen create and add new button to Outlook Express toolbar, that for example opens some other program when pressed.
|
|
|
|
|
I've written a function which is prototyped like this:
void myfunc(char *first, ...)
I'm using the va_arg, va_end, va_start macros to access the variable-argument list but I have to specify a terminator. Is there any way I can avoid having to specify the terminator?
Here is example from MSDN:
int average( int first, ... )
{
int count = 0, sum = 0, i = first;
va_list marker;
va_start( marker, first );
while( i != -1 )
{
sum += i;
count++;
i = va_arg( marker, int);
}
va_end( marker );
return( sum ? (sum / count) : 0 );
}
where the function must be called like this:
printf( "Average is: %d\n", average( 2, 3, 4, -1 ) );
Note the "-1" parameter!
If I have to do this, how does printf() avoid it?
|
|
|
|
|
Anonymous wrote:
If I have to do this, how does printf() avoid it?
The format string given to printf() implicitly says how many parameters should be there. For your average() method, there is no way the method can tell how many parameters are there, so the terminator is required.
Hope this helps,
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
Anonymous wrote:
If I have to do this, how does printf() avoid it?
It probably uses vsprintf I
f there is a format specifier. e.g. printf("%d %d", 42, 53) you can easily work out the number of argumenst required, you must make the assumption they are all present though.
If I have seen further it is by standing on the shoulders of Giants. - Isaac Newton 1676
|
|
|
|
|
Anonymous wrote:
If I have to do this, how does printf() avoid it?
printf() avoids it by not caring. It assumes that you are passing the same number of args as there are option switches in the format string. If you don't, printf() might crash.
So what can you do? There are basically two choices:
- Add a count parameter to your function:
int average( int first, int count, ... )
- Do what the MSDN example does, and supply a terminator value.
p.s. Thank you for taking the effort to format your question.
HPS HwndSpy - GUI developer's aid to visually
locate and inspect windows. For the month of August
only, use coupon code CP-81239 for 30% off.
|
|
|
|
|
Hi,
I've a .net project and I need to convert it to VC6.0 how do I do it !!
Ciao
- Nilesh
|
|
|
|
|
|
I declared a CFont object and a CIpAddressCtrl object in the header of CWnd -based class
CFont m_Font;
CIpAddressCtrl m_IpAddress;
In the Create method of this class I created font and set it to the CIpAddressCtrl object.
m_Font.CreateFont(...);
m_IpAddress.SetFont(&m_Font);
After destroy my class Numega's BoundsChecker tell me about Invalid Argument: DeleteObject. Why?? If I use other control instead CIpAddressCtrl (tested with CComboBox and CEdit ) then all OK.
Best regards,
Eugene Pustovoyt
|
|
|
|
|
MSDN says: "When you finish with the CFont object created by the CreateFont function, first select the font out of the device context, then delete the CFont object."
You could call m_Font.DeleteObject() in the dtor of the CWnd class.
HPS HwndSpy - GUI developer's aid to visually
locate and inspect windows. For the month of August
only, use coupon code CP-81239 for 30% off.
|
|
|
|
|
In a case with the chosen font in CIpAddressCtrl DeleteObject results to the same error.
Best regards,
Eugene Pustovoyt
|
|
|
|
|
Hi all
i hope that this time i am here with an easy question.
i have a DLL in this DLL i have used WndProc and GetMessage along with Journal Record Hook, in this LL i am generating function code. by function code i mean that the user interactions are saved in the form of functions. lets say that i have a comboBox and a user selects an item from this. i would generate a Combo_Select_item in my DLL and this entry is being wrriten to a simple text file.
now that i am integrating this code in to a driver program which is a an SDI application i want to past this generated code to the workspace of the SDI driver application i mean as the code is generated in the DLL simultaneously it should be pasted in the SDI workspace has any one done this stuff if so please do tell me this time i am badly needing this i u have any furthur queries post it
thanx in advance for ur time
regards
Basim
|
|
|
|
|