|
Hi,
Please tell me how a windows service can recieve events (especially power management ones). There was a function RegisterSysMsgHandler() as part of OneNow initiative which was supposed to allow a service to listen for window events.. But I can't find the documentation for that function anywhere on the web. Is there a new function by some other name which achieves the same thing?
Thank you,
Dilip
|
|
|
|
|
In the structure SERVICE_STATUS.dwControlsAccepted set SERVICE_ACCEPT_POWEREVENT.
In the beginning of your service main routine use ::SetServiceStatus() to specify the controls accepted (i.e. handled) by your service (i.e. handler routine).
In your service handler routine add a case to handle SERVICE_CONTROL_POWEREVENT.
Will only work for Win2K and up (i think).
...cmk
Save the whales - collect the whole set
|
|
|
|
|
Hello,
I have a static text over an activex object but after debugging or
releasing the app the gray rectangle around the static text is still
there...
Please help me on this.
Thanks.
|
|
|
|
|
I need an example of RegEnumValue.
|
|
|
|
|
First Take a look at RegEnumKey
RegEnumKey look Like this
LONG <code>RegEnumValue</code>(
HKEY hKey, <font color="green">
DWORD dwIndex, <font color="green">
LPTSTR lpValueName, <font color="green">
LPDWORD lpcValueName, <font color="green">
LPDWORD lpReserved, <font color="green">
LPDWORD lpType, <font color="green">
LPBYTE lpData, <font color="green">
LPDWORD lpcbData <font color="green">
);
Now Some Code Snippet
char szNameOfKey[200];<font color="green">
DWORD dwBufferSize=200;<font color="green">
DWORD dwIndex=0;
CStringArray arrOfKeys;
Now Enumerate the HKEY_CURRENT_USER using RegEnumKey
while(RegEnumKey(<code>HKEY_CURRENT_USER</code>,
dwIndex++, <font color="green">
szNameOfKey,<font color="green">
dwBufferSize,<font color="green">
NULL,<font color="green">
NULL,<font color="green">
NULL,<font color="green">
NULL)!= ERROR_NO_MORE_ITEMS)
{
<font color="green">
arrOfKeys.Add(<code>szNameOfKey</code>);
<font color="green">
<font color="green">
dwBufferSize=200;
}
<font color="green">
"I Think this Will Help"
<h5
alok gupta="" <br=""> visit me at http://www.thisisalok.tk
|
|
|
|
|
Thank you very very much!
|
|
|
|
|
Does anyone know how to create a thumbnail image (BMP) of the first page of a PDF document ?
I'm planning on using it in a thumbnail viewer so it needs to be fast.
|
|
|
|
|
Hi All,
I' m writing a Visual C++ MFC dialog-based program. I added a Menu bar uisng Insert->Resource-> Menu, not by writing code. Then, I tried to show and hide the Menu bar of a modal dialog dynamically.
By writing the following code, I succeed to hide the menu bar.
CWnd* pMain = AfxGetMainWnd();
if (pMain != NULL)
{
CMenu* pMenu = pMain->GetMenu();
while(pMenu != NULL && pMenu->GetMenuItemCount() > 0)
{
pMenu->DeleteMenu(0, MF_BYPOSITION);
pMain->DrawMenuBar();
}
}
But how can I show the menu again? Please kindly help me!
Cheers,
hmc
|
|
|
|
|
I think this code illustrates what you need:
void CShowHideMenuDlg::OnShowMenu()
{
// Load and add the new menu
CMenu mMainMenu;
mMainMenu.LoadMenu(IDR_MENU1);
ASSERT(mMainMenu);
SetMenu(&mMainMenu);
}
void CShowHideMenuDlg::OnHideMenu()
{
// Remove and destroy the old menu
SetMenu(NULL);
::DestroyMenu(GetMenu()->GetSafeHmenu());
}
Regards,
Serge Krynine
|
|
|
|
|
Thanks Serge, got it!
|
|
|
|
|
Also, if the main window is already restored but is obscured by another window, then the window should be moved to the front instead of being minimized.
How to do it ?
|
|
|
|
|
Hi,
I have a toolbar and I am trying to access the IWebBrowser2 in WM_LBUTTONDOWN, when someone clicks on a control on my toolbar with the following code:
BSTR bstrUrl;
CComPtr<iwebbrowser2> browser;
browser->get_LocationURL(&bstrUrl);
I am getting a debug assertion failed!
p!=0
I know there should be more to the code. Can somebody help?
|
|
|
|
|
I'm wanting to store a thread id in one of the colums of my list control. someone suggested that I store it in the LPARAM. Has anyone done this and if so can you give a suggestion as to how to go about this? Also how to retreive the thread id from that colum?
Thanks
Tom Wright
tawright915@yahoo.com
|
|
|
|
|
How about using CListCtrl::SetItemData() ?
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Hope this will help:
void SetThreadId(CListCtrl& rListCtrl, unsigned int const nColumn, unsigned int const nThreadId)
{
CHeaderCtrl* pHeaderCtrl = rListCtrl.GetHeaderCtrl();
ASSERT(NULL != pHeaderCtrl);
HDITEM hdi;
::memset(&hdi, 0, sizeof(HDITEM));
hdi.mask = HDI_LPARAM;
hdi.lParam = nThreadId;
pHeaderCtrl->SetItem(nColumn, &hdi);
}
unsigned int GetThreadId(CListCtrl& rListCtrl, unsigned int const nColumn)
{
HDITEM hdi;
::memset(&hdi, 0, sizeof(HDITEM));
hdi.mask = HDI_LPARAM;
CHeaderCtrl* pHeaderCtrl = rListCtrl.GetHeaderCtrl();
ASSERT(NULL != pHeaderCtrl);
pHeaderCtrl->GetItem(nColumn, &hdi);
return hdi.lParam;
}
Regards,
Serge Krynine
|
|
|
|
|
That did it. Thanks.
Tom Wright
tawright915@yahoo.com
|
|
|
|
|
Hey all,
Trying to retrieve the hd serial through VC++ 6.0, not finding a way to do it.
MSDN only had WMI scripting for this, and that's over my head. Is that the only way?
Best Regards
Fabio Miguez
|
|
|
|
|
Does this help?
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Hey David,
Thanks a lot for the link. I am running through the code right now, and a lot of it is foreign to me, but I will see how I can implement this onto my code. I am also having problems compiling, but the .exe available at the site works.
I would like to take advantage of the moment to ask if it has to be this complex, getting a serial number for the HD. Is there no function or simpler code able to do it?
Thanks again!
Best Regards
Fabio Miguez
|
|
|
|
|
GetVolumeInformation - See the lpVolumeSerialNumber field in the data structure.
Maybe that is the information you wanted.
|
|
|
|
|
Hey Blake,
Great, it seems I am getting somewhere now. I have implemented it in my test dialog, and lpVolumeNameBuffer and lpFileSystemNameBuffer are correct (the drive name and NTFS were returned properly). The serial number looks good, a 7 digit integer, but when I compare to the serial given by diskid32.exe, the program suggested above, they do not match. The serial on diskid32.exe has a mix of alphanumeric characters. The one I am obtaining using GetVolumeInformation can only be an integer, since the parameter used to store it is a DWORD, and I am formatting it as such:
m_sResults.Format("%d", &SerialNumber);
Any ideas where I could check the actual disk serial, short of looking on the HD casing? I use a laptop, so that would be a little harder than on a desktop.
Thanks again, great help!
Best Regards
Fabio Miguez
|
|
|
|
|
Fabio Miguez wrote:
m_sResults.Format("%d", &SerialNumber);
Do you mean to take the address of, rather than the value of, SerialNumber ?
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Hey Dave,
Damn it, you are right, I screwed that one up. But, on removing the & to get the value, not the address, I get a negative number. Perhaps this is happening due to the integer Format I perform? How could I place this value onto m_sResult (a CString) with alphanumeric characters?
Thanks again.
Best Regards
Fabio Miguez
|
|
|
|
|
Fabio Miguez wrote:
But, on removing the & to get the value, not the address, I get a negative number.
HDD serial numbers/volume IDs are unsigned, and are usually given as hex, so use %x rather than %d (or %u if you want a decimal number).
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"
|
|
|
|
|
Fabio,
I also needed the information you seek. I downloaded the DiskId32
and also had compile problems; (4) errors. Were you able to get around the compile errors?
The *.exe runs fine, but won't recompile under VC++ 6.0...
Would appreciate any suggestions you may have.
Thanks,
Steve.
|
|
|
|