|
Answer : SPLITTER WINDOW
Ninety-eight percent of the thrill comes from knowing that the thing you designed works, and works almost the way you expected it would. If that happens, part of you is in that machine.
|
|
|
|
|
Please Make this program run and identify errors, do i have to define any other variables such as
(#define _WIN32_WINNT 0x4000;)
#include
#include
#include
const int HW_PROFILE_GUIDLEN=100;
const int MAX_PROFILE_LEN=100;
typedef struct HW_PROFILE_INFO {
DWORD dwDockInfo;
TCHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
TCHAR szHwProfileName[MAX_PROFILE_LEN];
} HW_PROFILE_INFO, *LPHW_PROFILE_INFO;
int WINAPI WinMain(HINSTANCE h,HINSTANCE p,LPSTR l,int n)
{
TCHAR szBuffer1[1000];
TCHAR szBuffer2[1000];
TCHAR szBuffer3[1000];
HW_PROFILE_INFO HwProfInfo;
GetCurrentHwProfile(&HwProfInfo) ;
sprintf(szBuffer1, "DockInfo: %s", HwProfInfo.dwDockInfo);
MessageBox(0, szBuffer1, "Dock Info", 0);
sprintf(szBuffer2, "Profile Guid: %s", HwProfInfo.szHwProfileGuid);
MessageBox(0, szBuffer2, "Profile Guid", 0);
sprintf(szBuffer3, "Friendly Name: %s", HwProfInfo.szHwProfileName);
MessageBox(0, szBuffer3, "Friendly Name", 0);
return 0;
}
|
|
|
|
|
brilliant101 wrote:
...and identify errors...
What errors are you getting?
brilliant101 wrote:
sprintf(szBuffer1, "DockInfo: %s", HwProfInfo.dwDockInfo);
Use %lu instead.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
The problem is that this code, during compliation does not recognize the the GetCurrentHwProfile() fn although
windows.h is included
Moreover this code is slighted modified form of the one given in MSDN. Even on MSDN sample code it does not recognize the Fn
|
|
|
|
|
You'll need #define _WIN32_WINNT 0x0400 before any #include statements. Take a look at line 9821 of winbase.h .
Also, except for the #include directives, the statements above WinMain() are not necessary.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
I am designing such a module in a client server application in which i have to get the device information of a computer by using GetCurrentHwProfile( ) on Kernel Start up ( Computer restart) and get the user name on the computer on Computer logon.
now what should i do? should i have to program an interrupt handler or signal handler ( so that kernel can revoke that function on start up or user logon) or Is there any other solution to this?
Is there any api which can solve this problem?
Please help me out
|
|
|
|
|
brilliant101 wrote:
now what should i do?
Are you wanting to know how to use the GetCurrentHwProfile() function?
It sounds like you need to add a value to the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run key.
brilliant101 wrote:
...and get the user name on the computer on Computer logon.
Will GetUserName() help?
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
David,
I just want to know
"should i have to program an interrupt handler or signal handler ( so that kernel can revoke that function on start up or user logon) or Is there any other solution to this?"
how will my program know that the computer has started and i have to GetCurrentHwProfile () and similarly how will my program know that the new user has logged in and i have to send the user name by GetUserName()
I hope it is clear now
|
|
|
|
|
brilliant101 wrote:
how will my program know that the computer has started...
That's what the reference to the registry key was for. There's also one for the current user: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
brilliant101 wrote:
...and i have to send the user name by GetUserName()
Send it where?
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Actully i am making a client server application in which i have to make the usernames and hardware profiles of the computers in the network.Therefore i have to send the user name to server
|
|
|
|
|
How do I get the IP address from lpCallerId, I know its in that structure somehow some way, but I cannot find out how to extract it from the parameter passed to the condition function from WSAAccept?
Thanks guys
|
|
|
|
|
Can anyone pass on to me the method (or methods) that I need to call in order to manually (or forcibly) select a Radio btn? EG, if I do the following:
CButton* myRadioBtn = (CButton*) GetDlgItem(IDC_RADIO1);
How can I force this btn in the group to be selected?
|
|
|
|
|
myRadioButton.SetCheck (BST_CHECKED); // Use BST_UNCHECKED to uncheck
/ravi
My new year's resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
Rather than have a bunch of ugly casts, temporary variables, and calls to GetDlgItem() , assign each radio button to a CButton member variable. Then just use the SetChecked() method.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
For non-MFC programming:
BOOL CheckRadioButton(
HWND hDlg, // handle to dialog box
int nIDFirstButton, // identifier of first button in group
int nIDLastButton, // identifier of last button in group
int nIDCheckButton // identifier of button to select
);
or this macro defined in "windowsx.h"
SetCheck(hDlg,nIDCheckButton);
INTP
"The more help VB provides VB programmers, the more miserable your life as a C++ programmer becomes."
Andrew W. Troelsen
|
|
|
|
|
Neither of the above listed methods appear to work. When I query the button, the correct value shows up, ut it isn't re-drawn correctly. Even after forcing the control/window to re-draw.
|
|
|
|
|
well, found out of you use ShowWindow(FALSE), then change it, then ShowWindow(TRUE) it does re-draw and it works correctly.
|
|
|
|
|
WarChildWTS wrote:
Neither of the above listed methods appear to work.
That's strange!
Both of those methods have been available for at least 15-years (Window 3.1 and above). MFC its self calls the first method internaly, inorder to set/clear a check box (radio button). I've converted 16-bit C-programs to 32-bit programs and this is one, of the many, function calls that has not changed.
INTP
"The more help VB provides VB programmers, the more miserable your life as a C++ programmer becomes."
Andrew W. Troelsen
|
|
|
|
|
I did get it to work. The trick I found was that I had to hide the radio buttons, make the change then show the radio buttons using the ShowWindow function. I don't know why it didn't work otherwise, it should have. It works for the initial setting of the buttons, but it just doesn't seem to re-draw them correctly after that.
|
|
|
|
|
You're correct! It should have worked. It sounds like you have some other problem that you have yet to discover.
In any case maybe you should just try invalidating the radio buttons (or window), instead of hiding and then showing the window. Just a suggestion, since you probably already tried that.
Good Luck!
INTP
"The more help VB provides VB programmers, the more miserable your life as a C++ programmer becomes."
Andrew W. Troelsen
|
|
|
|
|
This is a little difficult to explain. I created a dll in .NET using C# and I need to call this dll from a Visual C++ 6.0 application. I read numerous materials on setting the C# dll up with COM Interop and I think I have it working. Now for the difficult part: when I call the function to launch the UI in the C# dll, it comes up, then I do my thing and close it down. I then go through the functionality again and the dll is called w/ no problems, the form comes up, etc. When I close it down, I will get a GPF. In trying to trace the problem, it returns from my dll, then returns from my function in the 6.0 c++ application, and returns from another function. I cannot discover where the GPF is occurring. Here is a basic outline of my 6.0 c++ function:
void functionname
{
// Initialize COM.
HRESULT hr = CoInitialize(NULL);
// Create the interface pointer.
IManageInterfacePtr pIInterface(__uuidof(ManagerInterface));
// Call the Add method.
pIInterface->LaunchRSSDLL(string, string, string);
pIInterface->Dispose(); <--this is from trying something with the C# dll
pIInterface->Release();
// Uninitialize COM.
CoUninitialize();
}
I have put try/catch inside this function, around the call to this function, inside my C# DLL COM interface, and I still cannot find where the gpf is occurring. This is my first C# dll so be please be patient if I so kind of idiotic in describing this. Any ideas on what I may be missing? Any ideas on what I can look at?
|
|
|
|
|
I found my own answer in this article:
http://www.dotnet247.com/247reference/msgs/35/178790.aspx
I removed the line of code
System.Windows.Forms.Application.EnableVisualStyles()
and all is well.
|
|
|
|
|
I am trying to implement version control on saved objects by using the following:
IMPLEMENT_SERIAL(MyObject, CObject, VERSIONABLE_SCHEMA | 2)
void MyObject::Serialize(CArchive& ar)
{
if (ar.IsLoading()) {
int version = ar.GetObjectSchema();
switch (version){
case 1:
//load first version
break;
case 2:
// load second version
break;
default:
AfxThrowArchiveException(CArchiveException::badSchema, "AppVersion");
break;
}
}
but.. ar.GetObjectSchema(); always returns -1.
I can get the above to work if I add
CObject::Serialize(ar);
ar.SerializeClass(GetRuntimeClass());
so now ar.GetObjectSchema() will return the proper schema
but.. I already have version 1 information on disk w/o these two calls.
Did I mess up? Is there a fix?
Thanks for anyone who can help!
|
|
|
|
|
I usually avoid this overly complicated scheme in the first place and always write out a DWORD to use as my own 'version schema' as the first element of the serialized file. Just increase the DWORD each time you change the version,a nd youc an easily 'switch' on it for handling earlier versions of your files in later versions of your program. As long as you can compensate for the very first version, which did not have this value, you are okay to go on subsequent ones, where you will always write it out.
|
|
|
|
|
I came to same conclusion. It sure looked good in the examples though! Thanks!
|
|
|
|