ReactOS 0.4.16-dev-2498-g8632030
CCicLibMenuItem Class Reference
Inheritance diagram for CCicLibMenuItem:
Collaboration diagram for CCicLibMenuItem:

Public Member Functions

 CCicLibMenuItem ()
 
virtual ~CCicLibMenuItem ()
 
BOOL Init (UINT uId, DWORD dwFlags, HBITMAP hbmp, HBITMAP hbmpMask, const WCHAR *pch, ULONG cch, ITfMenu *pMenu)
 
HBITMAP CreateBitmap (HANDLE hBitmap)
 

Protected Attributes

DWORD m_uId
 
DWORD m_dwFlags
 
HBITMAP m_hbmp
 
HBITMAP m_hbmpMask
 
BSTR m_bstrText
 
ITfMenum_pMenu
 

Detailed Description

Definition at line 736 of file msutb.cpp.

Constructor & Destructor Documentation

◆ CCicLibMenuItem()

CCicLibMenuItem::CCicLibMenuItem ( )

Definition at line 1960 of file msutb.cpp.

1961{
1962 m_uId = 0;
1963 m_dwFlags = 0;
1964 m_hbmp = NULL;
1965 m_hbmpMask = NULL;
1966 m_bstrText = NULL;
1967 m_pMenu = NULL;
1968}
ITfMenu * m_pMenu
Definition: msutb.cpp:744
HBITMAP m_hbmpMask
Definition: msutb.cpp:742
DWORD m_dwFlags
Definition: msutb.cpp:740
BSTR m_bstrText
Definition: msutb.cpp:743
HBITMAP m_hbmp
Definition: msutb.cpp:741
#define NULL
Definition: types.h:112

◆ ~CCicLibMenuItem()

CCicLibMenuItem::~CCicLibMenuItem ( )
virtual

Definition at line 1970 of file msutb.cpp.

1971{
1972 if (m_pMenu)
1973 {
1974 m_pMenu->Release();
1975 m_pMenu = NULL;
1976 }
1977
1978 if (m_hbmp)
1979 {
1981 m_hbmp = NULL;
1982 }
1983
1984 if (m_hbmpMask)
1985 {
1987 m_hbmpMask = NULL;
1988 }
1989
1991 m_bstrText = NULL;
1992}
pKey DeleteObject()
ULONG Release()
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
Definition: oleaut.c:271

Member Function Documentation

◆ CreateBitmap()

HBITMAP CCicLibMenuItem::CreateBitmap ( HANDLE  hBitmap)

Definition at line 2020 of file msutb.cpp.

2021{
2022 if (!hBitmap)
2023 return NULL;
2024
2025 HDC hDC = ::CreateDC(TEXT("DISPLAY"), NULL, NULL, NULL);
2026 if (!hDC)
2027 return NULL;
2028
2029 HBITMAP hbmMem = NULL;
2030
2031 BITMAP bm;
2032 ::GetObject(hBitmap, sizeof(bm), &bm);
2033
2034 HGDIOBJ hbmOld1 = NULL;
2035 HDC hdcMem1 = ::CreateCompatibleDC(hDC);
2036 if (hdcMem1)
2037 hbmOld1 = ::SelectObject(hdcMem1, hBitmap);
2038
2039 HGDIOBJ hbmOld2 = NULL;
2040 HDC hdcMem2 = ::CreateCompatibleDC(hDC);
2041 if (hdcMem2)
2042 {
2043 hbmMem = ::CreateCompatibleBitmap(hDC, bm.bmWidth, bm.bmHeight);
2044 hbmOld2 = ::SelectObject(hdcMem2, hbmMem);
2045 }
2046
2047 ::BitBlt(hdcMem2, 0, 0, bm.bmWidth, bm.bmHeight, hdcMem1, 0, 0, SRCCOPY);
2048
2049 if (hbmOld1)
2050 ::SelectObject(hdcMem1, hbmOld1);
2051 if (hbmOld2)
2052 ::SelectObject(hdcMem2, hbmOld2);
2053
2054 ::DeleteDC(hDC);
2055 if (hdcMem1)
2056 ::DeleteDC(hdcMem1);
2057 if (hdcMem2)
2058 ::DeleteDC(hdcMem2);
2059
2060 return hbmMem;
2061}
static HDC hDC
Definition: 3dtext.c:33
static HBITMAP hBitmap
Definition: timezone.c:26
static VOID BitBlt(_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Width, _In_ ULONG Height, _In_reads_bytes_(Delta *Height) PUCHAR Buffer, _In_ ULONG BitsPerPixel, _In_ ULONG Delta)
Definition: common.c:42
#define TEXT(s)
Definition: k32.h:28
static HBITMAP
Definition: button.c:44
static HDC
Definition: imagelist.c:88
LONG bmHeight
Definition: wingdi.h:1869
LONG bmWidth
Definition: wingdi.h:1868
#define CreateDC
Definition: wingdi.h:4887
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
Definition: dc.c:1546
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
#define SRCCOPY
Definition: wingdi.h:333
HBITMAP WINAPI CreateCompatibleBitmap(_In_ HDC hdc, _In_ INT cx, _In_ INT cy)
#define GetObject
Definition: wingdi.h:4914
BOOL WINAPI DeleteDC(_In_ HDC)

Referenced by Init().

◆ Init()

BOOL CCicLibMenuItem::Init ( UINT  uId,
DWORD  dwFlags,
HBITMAP  hbmp,
HBITMAP  hbmpMask,
const WCHAR pch,
ULONG  cch,
ITfMenu pMenu 
)

Definition at line 1994 of file msutb.cpp.

2002{
2003 m_uId = uId;
2006 if (!m_bstrText && cch)
2007 return FALSE;
2008
2009 m_pMenu = pMenu;
2011 m_hbmpMask = CreateBitmap(hbmpMask);
2012 if (hbmp)
2014 if (hbmpMask)
2015 ::DeleteObject(hbmpMask);
2016
2017 return TRUE;
2018}
HBITMAP hbmp
HBITMAP CreateBitmap(HANDLE hBitmap)
Definition: msutb.cpp:2020
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define pch(ap)
Definition: match.c:418
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
Definition: netsh.h:141
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
Definition: oleaut.c:339
_In_ UINT _In_ UINT cch
Definition: shellapi.h:432

Referenced by CCicLibMenu::AddMenuItem().

Member Data Documentation

◆ m_bstrText

BSTR CCicLibMenuItem::m_bstrText
protected

Definition at line 743 of file msutb.cpp.

Referenced by CCicLibMenuItem(), Init(), and ~CCicLibMenuItem().

◆ m_dwFlags

DWORD CCicLibMenuItem::m_dwFlags
protected

Definition at line 740 of file msutb.cpp.

Referenced by CCicLibMenuItem(), Init(), and CUTBLBarMenuItem::InsertToUI().

◆ m_hbmp

HBITMAP CCicLibMenuItem::m_hbmp
protected

Definition at line 741 of file msutb.cpp.

Referenced by CCicLibMenuItem(), Init(), and ~CCicLibMenuItem().

◆ m_hbmpMask

HBITMAP CCicLibMenuItem::m_hbmpMask
protected

Definition at line 742 of file msutb.cpp.

Referenced by CCicLibMenuItem(), Init(), and ~CCicLibMenuItem().

◆ m_pMenu

ITfMenu* CCicLibMenuItem::m_pMenu
protected

Definition at line 744 of file msutb.cpp.

Referenced by CCicLibMenuItem(), Init(), and ~CCicLibMenuItem().

◆ m_uId

DWORD CCicLibMenuItem::m_uId
protected

Definition at line 739 of file msutb.cpp.

Referenced by CCicLibMenuItem(), and Init().


The documentation for this class was generated from the following file: