I have a problem with creating icon form bitmap files my code is following:

Code:


 // HWND o_hwnd  - handle to current window
 // import       - retrieves content of specified file 

 ICONINFO _iconInfo;

 PBITMAPFILEHEADER _pBmpFileHeader = (PBITMAPFILEHEADER)import("image.BMP");

 _iconInfo.hbmpColor = CreateDIBitmap (
   GetDC(o_hwnd),
   (PBITMAPINFOHEADER)(_pBmpFileHeader + 0x01),
   0x04,
   ((void*)_pBmpFileHeader)+_pBmpFileHeader.offBits,
   (PBITMAPINFO)(_pBmpFileHeader + 0x01),
   0
 );
     
 PBITMAPFILEHEADER _pMskFileHeader = (PBITMAPFILEHEADER)import("mask.BMP");

 _iconInfo.hbmpMask = CreateDIBitmap (
   GetDC(o_hwnd),
   (PBITMAPINFOHEADER)(_pMskFileHeader + 0x01),
   0x04,
   ((void*)_pMskFileHeader)+_pBmpFileHeader.offBits,
   (PBITMAPINFO)(_pMskFileHeader + 0x01),
   0
 );
                 
 _iconInfo.icon = TRUE;

 HICON _hIco = CreateIconIndirect(&_iconInfo);
 SendMessage(o_hwnd, WM_SETICON, 0, (LPARAM)_hIco);

image.bmp is 24 bit color bitmap (16x16) - upper left image in all.bmp (attachment)
mask.bmp is 1 bit color bitmap (16x16) - white circle on black background - upper right image in all.bmp (attachment)

Icon on caption bar is fully visible with little darker circle.- lower right image in all.bmp (attachment)
Icon on task bar is visible everything expect circle (It should be inverted) - lower left image in all.bmp (attachment)

What is wrong?