INSTALL.W32: mention _OPENSSL_isservice().
authorAndy Polyakov <appro@openssl.org>
Fri, 9 Jul 2010 14:30:54 +0000 (14:30 +0000)
committerAndy Polyakov <appro@openssl.org>
Fri, 9 Jul 2010 14:30:54 +0000 (14:30 +0000)
PR: 2194

INSTALL.W32

index 77441f1ef3f1c073ce76b353a909b89075446bfe..a0886b3d77499e9757e50b6952e61f5613ebd7cf 100644 (file)
  desktop, which is not available to service processes. The toolkit is
  designed to detect in which context it's currently executed, GUI,
  console app or service, and act accordingly, namely whether or not to
- actually make GUI calls.
+ actually make GUI calls. Additionally those who wish to
+ /DELAYLOAD:GDI32.DLL and /DELAYLOAD:USER32.DLL and actually keep them
+ off service process should consider implementing and exporting from
+ .exe image in question own _OPENSSL_isservice not relying on USER32.DLL.
+ E.g., on Windows Vista and later you could:
+
+       __declspec(dllexport) __cdecl BOOL _OPENSSL_isservice(void)
+       {   DWORD sess;
+           if (ProcessIdToSessionId(GetCurrentProcessId(),&sess))
+               return sess==0;
+           return FALSE;
+       }
 
  If you link with OpenSSL .DLLs, then you're expected to include into
  your application code small "shim" snippet, which provides glue between