|
Thank you for replaying.
I am sure that string contains job_id = 1386 and much more. In many places where i try to see value of variables of type _bstr_t whenever it is getting long I can only see part of it in watch window.
someone suggested to check option in tools/options/debug unicode string and now i am getting a little more but still some part is missing.
example (the one i described earlier but with unicode string check out)
_bstr_t str : result in watch window (incomplete string)
{"SELECT * from Main_view where (job_id = 1636 OR project_id = 1636)AND ( ( person_1 = 'Baniewicz Małgorzata' ) OR (person_1 = " (1)}
_bstr_t str1 : result in watch window (complete string)
{"AND ( ( person_1 = 'Baniewicz Małgorzata' ) OR (person_1 = 'Bauer Piotr' ) OR (person_1 = 'Bejm Maciej' ))"}
str should have all str1 in itself (program is working correctly, but watch still does not display some part - in str's (1) place should be: 'Bauer Piotr' ) OR (person_1 = 'Bejm Maciej' ))"} - the end of str1, but it does not appear.
do not know why ?
|
|
|
|
|
This doesn't happen on my VC6 SP5. Watch, QuickWatch and Locals always display full string. Maybe you have a null character somewhere inside _bstr_t?
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
I am also using VC++ 6.0 SP5.
I do not think that NULL characters might be a reason - I do not have such in my string and the place where string is suddenly dropped happens at random depending only on the lenght of bstr_t
|
|
|
|
|
What is "shell" (in Windows)?
Thanks.
Maer
|
|
|
|
|
From Platform SDK docs:
The Microsoft® Windows® user interface (UI) gives users access to a wide variety of objects necessary for running applications and managing the operating system. The most numerous and familiar of these objects are the folders and files that reside on computer disk drives. There are also a number of virtual objects that allow the user to do tasks, such as send files to remote printers or access the Recycle Bin.
The shell organizes these objects into a hierarchical structure called the namespace, which provides users and applications with a consistent and efficient way to access and manage objects. Users interact with the namespace through the shell's graphical UI or through an application. Applications interact with the namespace through the shell's application programming interface
You'll find complete info in your VC++ help: go to Contents, then Platform SDK/User Interface Services/Windows Shell.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
Thanks my pal.
I have read the articles you introduced to me. It helps a lot. I have known the function of the "shell".
But I still have a question. I can not find the exact definition of "shell". I am now in a puzzled state. Like the air we breathe, we just know the function and do not know the exact definition of the term.
Can you explain the definition of the "shell"?
Thank again.
Best regards.
Maer
|
|
|
|
|
Can you explain the definition of the "shell"?
In short, this is a program you're using to communicate with operating system. In the case of 32-bit Windows, this program is named explorer.exe.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
Thanks pal.
You help a lot
Maer
|
|
|
|
|
Use WM_CTLCOLOR:
HBRUSH CMyView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor == CTLCOLOR_EDIT)
pDC->SetTextColor(RGB(0,0,255));
return hbr;
}
|
|
|
|
|
If I open a workspace in a MIcrosoft Visual studio it's not showing the class
view??What can be the problem..
How I can see the class view in MSDEV..
|
|
|
|
|
Hi Srinu .
Get 'ALT+0' Keys.
Iman Ghasr-e-fakhri
|
|
|
|
|
Hi Srinu .
Get 'ALT+0' Keys.
Iman Ghasr-e-fakhri
|
|
|
|
|
Hi,
I am writing a independant logger class for which I need to write a log
with the application name.
Like if the applicaions name is "UserApp.exe" i need to write a log
file with the name "UserApp.log". The problem I have is i do not have access to the
command line.
Finding out a dll's file name is easy, we can use 'GetModuleFileName' but
it does not work with exes.
How can i find out the current applciations name from within the application ??
Thanks for any help
|
|
|
|
|
Sorry abt that I bungled up a little bit,
The 'GetModuleFileName' works.
Sorry
|
|
|
|
|
Are there any other typies of "container" besides "Work Group" on the LAN?
Thanks.
Maer
|
|
|
|
|
I have read the information about SHGetDesktopFolder, IShellFolder::ParseDisplayName, SHGetDataFromIDList in MSDN.
Can you show me a sample code using the functions you mentioned before to get the first level of "NETRESOURCE" of the "Network Neighborhood"?
Thanks.
Maer
|
|
|
|
|
Hi,
I want to create a console from a Windows Application and print some messages.
I am using the following code.
BOOL bret = AllocConsole() ;
if( !bret)
{
//Do some err processing
}
else
{
HANDLE hScrBuf = CreateConsoleScreenBuffer( GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE|FILE_SHARE_READ, NULL, CONSOLE_TEXTMODE_BUFFER, NULL) ;
if( hScrBuf == INVALID_HANDLE_VALUE ) //Error Check
{
//Do some Err Processing
}
DWORD dwWritten ;
BOOL bret = WriteConsole(hScrBuf, szLogText,_tcslen(szLogText),&dwWritten, NULL) ;
return bret ;
}
The code creates the window correctly and also when I step thru the code all
the statements seem to be working corretly!
WriteConsole also returns a value of the num of bytes written correctly, but i
cannot see anything on the screen.
Please tell me what is wrong with the code, Thanks in advance.
|
|
|
|
|
You should use
SetConsoleActiveScreenBuffer(hScrBuf); to activate your source buffer for the console.
Or you should use
hSrcBuf = GetStdHandle(STD_OUTPUT_HANDLE); to get a handle to the console.
Oliver
|
|
|
|
|
Thank u verrrry much Olliver,
Actually this is the first time i using the console creation functions.
Really I appreciate it.
Thanks Once again.
|
|
|
|
|
Hi,
I'm trying to create a toolbar, that one of whose buttons opens another popup toolbar (without
the caption) if it's pressed on long enough. Anyone knows how to do this?
|
|
|
|
|
when i dragging a hyperlink from ie to my application,i can only get the url like
"http://www.microsoft.com"but how to get the corresponding title.
hello
|
|
|
|
|
Hello!!
I am trying to send and receive some data using COMM(communications ). I using C/SDK for prgramming and the OS is Win98 and Win 2000.
I have got the handle to COM port(COM port1) by the use of
lineGetID() ( using VARSTRING datastructure).
I have only modified the timeout value
(commtimeouts.ReadIntervalTimeout = 3000; and set the others to
zero)..
When I transmit the data from the client using WriteFile(), it gives error in the client
saying ERROR_ALREADY_EXISTS (0x000000b7).. When I try to open the COM
port by using CreateFile() it gives error "Access Denied".
Could you please advise what could be the problem...
Sandeep
|
|
|
|
|
My hunch is that you're not calling lineGetID() appropriately. To determine this, why not try to write to COM1 without using TAPI at all? A handle to the port can be gotten with
CreateFile("COM1",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL)
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Thanks for your mail.. I have managed to print the device name (modem name) connected to COM1. So I think I am getting a valid handle to the COM Port. Do I have to use "Overlapped" structure at the sending end as well as the receiving end.. i.e. for WriteFile() as well as ReadFile()..
and would there be a problem if the code with the use of "OverLapped" stucture give any problem if the code is run on WIn 98 or WinNT.. I want to make the code OS independent it should run on atleast WIn 98.Win NT,Win ME,Win 2000 and Win XP.
Please help
|
|
|
|
|
Well this little piece of code shows how to use lineGetID() . Assume you've got a HCALL handle obtained with lineMakeCall in passthrough mode:
LONG res;
LPVARSTRING p_varString=NULL;
size_t size=sizeof(VARSTRING)+1024;
HANDLE hCOM;
for( ; ; ){
if((p_varString=(LPVARSTRING)malloc(size))==NULL)return FALSE;
p_varString->dwTotalSize=size;
if(lineGetID(0,0,hCall,LINECALLSELECT_CALL,p_varString,"comm/datamodem")!=0){
free(p_varString);
return FALSE;
}
else if(p_varString->dwNeededSize>size){
size=p_varString->dwNeededSize;
free(p_varString);
}
else break;
}
hCOM=*((LPHANDLE)((LPBYTE)p_varString+p_varString->dwStringOffset));
free(p_varString);
Try with this to see if you're any luckier.
As for overlapped mode, I'm afraid that if you're obtaining you're COM handle via lineGetID() instead that with CreateFile() then you must assume that the port may be in overlapped mode. This mode is supported on all Windows OSs starting from Win95. The Microsoft sample TAPICOMM shows how to deal with WriteFile() and ReadFile() handling both modes (overlapped and nonoverlapped) in a unified way.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|