home *** CD-ROM | disk | FTP | other *** search
/ ...taking it to the Macs! / ...taking it to the Macs!.iso / Extras / ActiveX Mac SDK / ActiveX SDK / Container Common / acxvariant.cpp < prev    next >
Encoding:
Text File  |  1997-01-02  |  818 b   |  44 lines  |  [TEXT/CWIE]

  1. //
  2. //  acxVariant.CPP
  3. //
  4. //  Copyright (C) Microsoft Corporation, 1996
  5. //
  6.  
  7. #include "headers.h"
  8.  
  9.  
  10. STDAPI_(void) acx_VariantInit(VARIANTARG FAR* pvarg)
  11. {
  12.     pvarg->vt = VT_EMPTY;
  13. }
  14.  
  15. STDAPI 
  16. acx_VariantCopy( VARIANTARG FAR* pvargDest, VARIANTARG FAR* pvargSrc)
  17. {
  18.     if(pvargSrc->vt == VT_BSTR)
  19.     {
  20.         DWORD    length;
  21.         
  22.         length = *((LPDWORD) pvargSrc->bstrVal);
  23.         pvargDest->bstrVal = (char*) CoTaskMemAlloc(sizeof(DWORD) + length + 1);
  24.         memcpy(pvargDest->bstrVal, pvargSrc->bstrVal, sizeof(DWORD) + length + 1);
  25.         
  26.         pvargDest->vt = pvargSrc->vt;
  27.         
  28.         return S_OK;
  29.     }
  30.     return E_FAIL;
  31. }
  32.  
  33. STDAPI
  34. acx_VariantChangeType( VARIANTARG FAR* pvargDest,  VARIANTARG FAR* pvarSrc,
  35.     unsigned short wFlags, VARTYPE vt)
  36. {
  37. #pragma unused (wFlags)
  38.     if(vt == VT_BSTR)
  39.     {
  40.         return acx_VariantCopy( pvargDest, pvarSrc);
  41.     }
  42.     return E_FAIL;
  43. }
  44.