|
I think you need understanding of COM for this . Who does develop interface in question ?
|
|
|
|
|
Prasad I have basic idea of working with COM, like creating dll , Interface , connecting each other etc ….
Can u please give me some links where I can get some material on this.
Thanking you,
Suresh HC.
|
|
|
|
|
To start with, go through Interface[^] basics.
Browse articles in same section for more info.
|
|
|
|
|
Thanks Prasad, i will start with that article.
|
|
|
|
|
If you have a hyperthreading enabled CPU, please do me a favour. Navigate to
HKEY_LOCAL_MACHINE, "Hardware\\Description\\System\\CentralProcessor"
and tell me if your virtual CPU's are listed. IE if you have 1 pentium 4 with hyperthreading, it should show the subdirectories 0 and 1. ( I think )
|
|
|
|
|
With dual Xeons I get 4 virtual cpus, Reg keys 0 - 3.
|
|
|
|
|
Cheers. I would enumerate the values, but vista keeps giving me ERROR_ACCESS_DENIED, so I will hardcode them.
|
|
|
|
|
WalderMort wrote: it should show the subdirectories 0 and 1.
Ya. It shows...
nave
|
|
|
|
|
Yep, I've got 0 and 1
And one single value that differs: Component Information.
Cpu 0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00
Cpu 1: 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00
Alcohol. The cause of, and the solution to, all of life's problems - Homer Simpson
|
|
|
|
|
Dont' you just hate it when the examples on MSDN are WRONG!
Look at this[^] for example. According to their code I'm running a Longhorn server. I wish. Even their reg queries are wrong since they mix and match the cases.
|
|
|
|
|
I've never actually tried that code verbatim, but that article changes with every version
of Windows. I've always updated my code with every version release but by going through each
API carefully in the latest SDK.
The latest (PSDK 2003 Server R2) Requires #define _WIN32_WINNT 0x0501 to compile and the
latest SDK headers (plus it won't compile on Unicode build LOL)...
#include <windows.h>
#include <stdio.h>
#define BUFSIZE 80
int main()
{
OSVERSIONINFOEX osvi;
SYSTEM_INFO si;
BOOL bOsVersionInfoEx;
ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
if( !(bOsVersionInfoEx = GetVersionEx ((OSVERSIONINFO *) &osvi)) )
{
osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
if (! GetVersionEx ( (OSVERSIONINFO *) &osvi) )
return FALSE;
}
switch (osvi.dwPlatformId)
{
case VER_PLATFORM_WIN32_NT:
if ( osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 0 )
{
if( osvi.wProductType == VER_NT_WORKSTATION )
printf ("Microsoft Windows Vista ");
else printf ("Windows Server \"Longhorn\" " );
}
if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2 )
{
GetNativeSystemInfo(&si);
if( GetSystemMetrics(SM_SERVERR2) )
printf( "Microsoft Windows Server 2003 \"R2\" ");
else if( si.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_IA64 &&
osvi.wProductType == VER_NT_WORKSTATION )
{
printf( "Microsoft Windows XP Professional x64 Edition ");
}
else printf ("Microsoft Windows Server 2003, ");
}
if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1 )
printf ("Microsoft Windows XP ");
if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0 )
printf ("Microsoft Windows 2000 ");
if ( osvi.dwMajorVersion <= 4 )
printf ("Microsoft Windows NT ");
if( bOsVersionInfoEx )
{
if ( osvi.wProductType == VER_NT_WORKSTATION )
{
if( osvi.dwMajorVersion == 4 )
printf ( "Workstation 4.0 " );
else if( osvi.wSuiteMask & VER_SUITE_PERSONAL )
printf ( "Home Edition " );
else printf ( "Professional " );
}
else if ( osvi.wProductType == VER_NT_SERVER ||
osvi.wProductType == VER_NT_DOMAIN_CONTROLLER )
{
if(osvi.dwMajorVersion==5 && osvi.dwMinorVersion==2)
{
if ( si.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_IA64 )
{
if( osvi.wSuiteMask & VER_SUITE_DATACENTER )
printf ( "Datacenter Edition for Itanium-based Systems" );
else if( osvi.wSuiteMask & VER_SUITE_ENTERPRISE )
printf ( "Enterprise Edition for Itanium-based Systems" );
}
else if ( si.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64 )
{
if( osvi.wSuiteMask & VER_SUITE_DATACENTER )
printf ( "Datacenter x64 Edition " );
else if( osvi.wSuiteMask & VER_SUITE_ENTERPRISE )
printf ( "Enterprise x64 Edition " );
else printf( "Standard x64 Edition " );
}
else
{
if( osvi.wSuiteMask & VER_SUITE_DATACENTER )
printf ( "Datacenter Edition " );
else if( osvi.wSuiteMask & VER_SUITE_ENTERPRISE )
printf ( "Enterprise Edition " );
else if ( osvi.wSuiteMask == VER_SUITE_BLADE )
printf ( "Web Edition " );
else printf ( "Standard Edition " );
}
}
else if(osvi.dwMajorVersion==5 && osvi.dwMinorVersion==0)
{
if( osvi.wSuiteMask & VER_SUITE_DATACENTER )
printf ( "Datacenter Server " );
else if( osvi.wSuiteMask & VER_SUITE_ENTERPRISE )
printf ( "Advanced Server " );
else printf ( "Server " );
}
else
{
if( osvi.wSuiteMask & VER_SUITE_ENTERPRISE )
printf ("Server 4.0, Enterprise Edition " );
else printf ( "Server 4.0 " );
}
}
}
else
{
HKEY hKey;
char szProductType[BUFSIZE];
DWORD dwBufLen=BUFSIZE;
LONG lRet;
lRet = RegOpenKeyEx( HKEY_LOCAL_MACHINE,
"SYSTEM\\CurrentControlSet\\Control\\ProductOptions",
0, KEY_QUERY_VALUE, &hKey );
if( lRet != ERROR_SUCCESS )
return FALSE;
lRet = RegQueryValueEx( hKey, "ProductType", NULL, NULL,
(LPBYTE) szProductType, &dwBufLen);
RegCloseKey( hKey );
if( (lRet != ERROR_SUCCESS) || (dwBufLen > BUFSIZE) )
return FALSE;
if ( lstrcmpi( "WINNT", szProductType) == 0 )
printf( "Workstation " );
if ( lstrcmpi( "LANMANNT", szProductType) == 0 )
printf( "Server " );
if ( lstrcmpi( "SERVERNT", szProductType) == 0 )
printf( "Advanced Server " );
printf( "%d.%d ", osvi.dwMajorVersion, osvi.dwMinorVersion );
}
if( osvi.dwMajorVersion == 4 &&
lstrcmpi( osvi.szCSDVersion, "Service Pack 6" ) == 0 )
{
HKEY hKey;
LONG lRet;
lRet = RegOpenKeyEx( HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Hotfix\\Q246009",
0, KEY_QUERY_VALUE, &hKey );
if( lRet == ERROR_SUCCESS )
printf( "Service Pack 6a (Build %d)\n",
osvi.dwBuildNumber & 0xFFFF );
else
{
printf( "%s (Build %d)\n",
osvi.szCSDVersion,
osvi.dwBuildNumber & 0xFFFF);
}
RegCloseKey( hKey );
}
else
{
printf( "%s (Build %d)\n",
osvi.szCSDVersion,
osvi.dwBuildNumber & 0xFFFF);
}
break;
case VER_PLATFORM_WIN32_WINDOWS:
if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 0)
{
printf ("Microsoft Windows 95 ");
if (osvi.szCSDVersion[1]=='C' || osvi.szCSDVersion[1]=='B')
printf("OSR2 " );
}
if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 10)
{
printf ("Microsoft Windows 98 ");
if ( osvi.szCSDVersion[1]=='A' || osvi.szCSDVersion[1]=='B')
printf("SE " );
}
if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 90)
{
printf ("Microsoft Windows Millennium Edition\n");
}
break;
case VER_PLATFORM_WIN32s:
printf ("Microsoft Win32s\n");
break;
}
return TRUE;
}
|
|
|
|
|
LoL, it's still missing a whole bunch of details.
Vista x64?
Vista version?
Longhorn Version?
If I run that code it tells me I have Windows "Longhorn" Professional
I updated the version I took earlier and hopefully it will correctly detect the above.
|
|
|
|
|
Get latest PSDK from Microsoft
then @ Tools->Option->directories , set include directory to latest PSDK include and manage the order of listed includes will solve the issue??
or
get the values of
Vista x64?
Vista version?
Longhorn Version?
and define the values in your source file
-- modified at 4:43 Tuesday 13th February, 2007
|
|
|
|
|
Hello,
I ran into the following situation. First, i'll list a small excerpt of the process list output from Process Explorer [^];
Process PID
System Idle Process 0
Interrupts n/a
DPCs n/a
cdas56e.exe 504
StartupMonitor.exe 3388
eclipse.exe 3396
javaw.exe 3052
emulator.exe 2752
jdbgagt.exe 3872
procexp.exe 1592
iexplore.exe 2168
taskmgr.exe 1536
procexp.exe 3688
explorer.exe 2172
multiDesk.exe 2164 The process that is bolded, namely eclipse.exe and it's children, is orphaned because the explorer.exe died for some reason. I started a new explorer from the taskmgr.exe application. The problem that I am trying to solve is that I can no longer access the eclipse.exe application after it's parent, explorer.exe, dies. (I tried to use the "Bring to Front" command from taskmgr.exe but that did not work because that option was turned off.)
How would I go about writing a program to reattach an orphan process(es) to a new explorer.exe process?
Sources, URL s, etc..., would be greatly appreciated.
Thanks,
|
|
|
|
|
I don't think this is possible.
Steve
|
|
|
|
|
how can i model robot arm?i will not make robot arm.it was made.how can i control this simulation in real time?i mean i ll control real robot arm with serial port and i ll feedback from serial port.and simulation ll be simulatenously in "real robot arm".how can i do it in easiest way?
|
|
|
|
|
Mir_As wrote: how can i model robot arm?i will not make robot arm.it was made.how can i control this simulation in real time?i mean i ll control real robot arm with serial port and i ll feedback from serial port.and simulation ll be simulatenously in "real robot arm".how can i do it in easiest way?
break it down into multiple rotations, which are hard in matrix math, but easy in quaternions.
GamaSutra on quaternions[^]
_________________________
Asu no koto o ieba, tenjo de nezumi ga warau.
Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
|
|
|
|
|
If you double click any USB Root Hub device in your "device management" application, then select "Power" page, you will see how many ports available on this hub.
How can i get this number through Win32 API?
|
|
|
|
|
|
hi, im trying to use GetProcesses(); function to list all active processes in my machine, i want to use this function to use DuplicateHandle to list the handles of a specific process...
but i cant find no where information that could me let write the prog, mos of the cases all examples give me errors, in microsoft MSDN i dont understand i they use #using <system.dll> then the compiler give me errors... im confuse with using GetProcesses(); or GetCurrentProcess(); but with both i cant write the prog, full of errors...
please someone could give me a had here...
|
|
|
|
|
GetProcesses is part of the .NET framework?
If so, maybe try reposting your question here[^]
|
|
|
|
|
and if i use GetHandleInformation ?? im using toolHelp32Snapshot to get my current processes, could i intereact GetHandleInformation with the toolHelp32...
i could i work arround with getHandleInformation(); ?
|
|
|
|
|
Will this[^] article help?
/ravi
|
|
|
|
|
Ravi linked to a article that should help.
Here's some useful APIs...If you are having trouble compiling/linking when using them, be sure
and check dependencies in the SDK docs for each API...
CreateToolhelp32Snapshot() (#include <Tlhelp32.h> )
Process32First() (#include <Tlhelp32.h> )
Process32Next() (#include <Tlhelp32.h> )
OpenProcess() (#include <windows.h> ) (use PROCESSENTRY32.th32ProcessID returned by above APIs)
CloseHandle() (#include <windows.h> )
What specific problems are you having?
Mark
|
|
|
|
|
that article didnt help me...
coz im looking something that could teach me with examples working with gethandleinformation to get handle objects like file, event, etc... that i could get from handleinformation...
|
|
|
|