home *** CD-ROM | disk | FTP | other *** search
/ ActiveX Programming Unleashed CD / AXU.iso / source / chap04 / lst44 / lst44obj.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1996-09-26  |  968 b   |  55 lines

  1. // Lst44Obj.cpp : Implementation of Clst44App and DLL registration.
  2.  
  3. #include "stdafx.h"
  4. #include "lst44.h"
  5. #include "Lst44Obj.h"
  6.  
  7. /////////////////////////////////////////////////////////////////////////////
  8. //
  9.  
  10. STDMETHODIMP CLst44Object::InterfaceSupportsErrorInfo(REFIID riid)
  11. {
  12.     if (riid == IID_ILst44)
  13.         return S_OK;
  14.     return S_FALSE;
  15. }
  16.  
  17.  
  18. BSTR CreateBSTR(LPCSTR lpa)
  19. {
  20.     BSTR bsz;
  21.     UINT cch;
  22.  
  23.     cch = strlen(lpa);
  24.  
  25.     bsz = SysAllocStringLen(NULL, cch);
  26.     if (bsz == NULL)
  27.         return NULL;
  28.  
  29.     if (cch > 0)
  30.         MultiByteToWideChar(CP_ACP, 0, lpa, cch, bsz, cch);
  31.         
  32.     bsz[cch] = NULL;
  33.     return bsz;
  34. }
  35.  
  36. STDMETHODIMP CLst44Object::GetMachineName(BSTR* retval)
  37. {
  38.     ULONG ulLen;
  39.  
  40.     char *lpName;
  41.  
  42.     lpName = new char[MAX_PATH];
  43.     ulLen = MAX_PATH;
  44.  
  45.     GetComputerName(lpName, &ulLen);
  46.         *(lpName+ulLen) = '\0';
  47.  
  48.      if(ulLen == 0)
  49.         *retval = NULL;
  50.     else
  51.         *retval = CreateBSTR(lpName);
  52.  
  53.     return S_OK;
  54.     
  55. }