Patch level :2.1 022
Files correlati :xvagadll.dll Ricompilazione Demo : [ ] Commento :sistemato il problema delle licenze con terminal server;adesso vale la sessione git-svn-id: svn://10.65.10.50/trunk@11935 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
9f9dc7cea1
commit
f44c7717da
@ -804,19 +804,21 @@ bool OsWin32_Speak(const char* text, bool async)
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
typedef BOOL (PASCAL *pfnProcessIdToSessionId)(DWORD dwProcessId,DWORD* pSessionId);
|
||||||
|
|
||||||
int OsWin32_GetSessionId()
|
int OsWin32_GetSessionId()
|
||||||
{
|
{
|
||||||
const wxString str = wxGetUserId();
|
//modifiche del 5/4/04 per poter gestire le licenze con win2000/2003 server edition
|
||||||
|
DWORD session = 0;
|
||||||
|
HMODULE kernel = GetModuleHandle("kernel32.dll");
|
||||||
|
|
||||||
unsigned short h = 0;
|
if (kernel != NULL)
|
||||||
for (const char* s = str; *s; s++)
|
|
||||||
{
|
{
|
||||||
h = (h << 2) + *s;
|
pfnProcessIdToSessionId fn = (pfnProcessIdToSessionId)GetProcAddress(kernel, "ProcessIdToSessionId");
|
||||||
const unsigned short i = h & 0xC000;
|
if (fn != NULL)
|
||||||
if (i) h = (h ^ (i >> 12)) & 0x3FFF;
|
fn(GetCurrentProcessId(), &session);
|
||||||
}
|
}
|
||||||
|
return (int) session;
|
||||||
return (int) h;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#define BUFSIZE 80
|
#define BUFSIZE 80
|
||||||
|
Loading…
x
Reference in New Issue
Block a user