home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c083 / 11.ddi / OWLSRC.PAK / ICON.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1993-12-02  |  1.9 KB  |  75 lines

  1. //----------------------------------------------------------------------------
  2. // ObjectWindows - (C) Copyright 1992, 1993 by Borland International
  3. //   source\owl\icon.cpp
  4. //   Implementation of GDI Icon object class
  5. //----------------------------------------------------------------------------
  6. #include <owl\owlpch.h>
  7. #include <owl\gdiobjec.h>
  8.  
  9. DIAG_DECLARE_GROUP(OwlGDI);        // General GDI diagnostic group
  10.  
  11. TIcon::TIcon(HICON handle, TAutoDelete autoDelete)
  12.   : TGdiBase(handle, autoDelete)
  13. {
  14. }
  15.  
  16. #if defined(__WIN32__)
  17. TIcon::TIcon(HINSTANCE, const TIcon& icon)
  18. {
  19.   Handle = ::CopyIcon(icon);
  20.   CheckValid();
  21. }
  22. #else
  23. TIcon::TIcon(HINSTANCE instance, const TIcon& icon)
  24. {
  25.   Handle = ::CopyIcon(instance, icon);
  26.   CheckValid();
  27. }
  28. #endif
  29.  
  30. TIcon::TIcon(HINSTANCE instance, TResId resId)
  31. {
  32.   Handle = ::LoadIcon(instance, resId);
  33.   ShouldDelete = FALSE;
  34.   CheckValid();
  35. }
  36.  
  37. TIcon::TIcon(HINSTANCE instance, const char far* fileName, int index)
  38. {
  39.   Handle = ::ExtractIcon(instance, (LPSTR)fileName, index);
  40.   if ((int)Handle == 1)
  41.     Handle = 0;
  42.   CheckValid();
  43. }
  44.  
  45. TIcon::TIcon(HINSTANCE instance, const TSize& size, int planes, int bitsPixel,
  46.              const void far* andBits, const void far* xorBits)
  47. {
  48.   Handle = ::CreateIcon(instance, size.cx, size.cy,
  49.                         BYTE(planes), BYTE(bitsPixel),
  50.                         (const BYTE far*)andBits, (const BYTE far*)xorBits);
  51.   CheckValid();
  52. }
  53.  
  54. #if defined(__WIN32__)
  55. TIcon::TIcon(const void* resBits, DWORD resSize)
  56. {
  57.   Handle = CreateIconFromResource((PBYTE)resBits, resSize, TRUE, 0x00030000);
  58.   CheckValid();
  59. }
  60.  
  61. TIcon::TIcon(const ICONINFO* iconInfo)
  62. {
  63.   //IconInfo->fIcon = TRUE;
  64.   Handle = CreateIconIndirect((PICONINFO)iconInfo);
  65.   CheckValid();
  66. }
  67. #endif
  68.  
  69. TIcon::~TIcon()
  70. {
  71.   if (ShouldDelete)
  72.     if (!::DestroyIcon((HICON)Handle))
  73.       THROW( TXGdi(IDS_GDIDESTROYFAIL, Handle) );
  74. }
  75.