root/experimental/NT-based/NTSpecific/OnNT.hpp

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. GetLocalUsrName
  2. GetLocalPCName
  3. GetLocalUsrInfo
  4. OnNT

   1 /******************************************************************************
   2 ** $Header: svn+ssh://jmmcg@svn.code.sf.net/p/libjmmcg/code/trunk/libjmmcg/experimental/NT-based/NTSpecific/OnNT.hpp 2055 2017-05-13 19:35:47Z jmmcg $
   3 ** 
   4 ** Copyright © 2002 by J.M.McGuiness, coder@hussar.me.uk
   5 **
   6 ** This library is free software; you can redistribute it and/or
   7 ** modify it under the terms of the GNU Lesser General Public
   8 ** License as published by the Free Software Foundation; either
   9 ** version 2.1 of the License, or (at your option) any later version.
  10 **
  11 ** This library is distributed in the hope that it will be useful,
  12 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14 ** Lesser General Public License for more details.
  15 **
  16 ** You should have received a copy of the GNU Lesser General Public
  17 ** License along with this library; if not, write to the Free Software
  18 ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  19 */
  20 
  21 #pragma once
  22 
  23 #define VC_EXTRALEAN            // Exclude rarely-used stuff from Windows headers
  24 #include<winbase.h>     // Ensure the SYSTEM_INFO structure is defined.
  25 
  26 #include<lmcons.h>
  27 
  28 namespace jmmcg { namespace NTUtils {
  29 
  30         inline jmmcg::tstring __fastcall GetLocalUsrName(void) {
  31                 register jmmcg::tchar tmp[UNLEN+1];
  32                 register unsigned long size=sizeof(tmp)/sizeof(jmmcg::tchar);
  33                 ::GetUserName(tmp,&size);
  34                 assert(tmp && size);
  35                 return tmp;
  36         }
  37 
  38         inline jmmcg::tstring __fastcall GetLocalPCName(void) {
  39                 register jmmcg::tchar tmp[MAX_COMPUTERNAME_LENGTH+1];
  40                 register unsigned long size=sizeof(tmp)/sizeof(jmmcg::tchar);
  41                 ::GetComputerName(tmp,&size);
  42                 assert(tmp && size);
  43                 return tmp;
  44         }
  45 
  46         inline void __fastcall GetLocalUsrInfo(jmmcg::tstring &unc,jmmcg::tstring &user) {
  47                 unc=GetLocalPCName();
  48                 user=GetLocalUsrName();
  49         }
  50 
  51         inline bool __fastcall OnNT(void) noexcept(true) {
  52                 register OSVERSIONINFO osinfo;
  53                 osinfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);
  54                 return ::GetVersionEx(&osinfo) && osinfo.dwPlatformId==VER_PLATFORM_WIN32_NT;
  55         }
  56 
  57 } }

/* [<][>][^][v][top][bottom][index][help] */