ReactOS 0.4.15-dev-8614-gbc76250
CopyImage.c File Reference
#include "precomp.h"
#include <versionhelpers.h>
Include dependency graph for CopyImage.c:

Go to the source code of this file.

Macros

#define COPYIMAGE_VALID_FLAGS
 
#define LR_UNKNOWN_0x10000   0x10000
 

Functions

static HANDLE CreateTestImage (UINT uType)
 
static VOID Test_CopyImage_Flags (UINT uType)
 
 START_TEST (CopyImage)
 

Macro Definition Documentation

◆ COPYIMAGE_VALID_FLAGS

#define COPYIMAGE_VALID_FLAGS
Value:
( \
)
#define LR_VGACOLOR
Definition: winuser.h:1099
#define LR_COLOR
Definition: winuser.h:1092
#define LR_LOADTRANSPARENT
Definition: winuser.h:1096
#define LR_LOADFROMFILE
Definition: winuser.h:1095
#define LR_LOADREALSIZE
Definition: winuser.h:1098
#define LR_COPYFROMRESOURCE
Definition: winuser.h:1102
#define LR_CREATEDIBSECTION
Definition: winuser.h:1101
#define LR_MONOCHROME
Definition: winuser.h:1091
#define LR_COPYRETURNORG
Definition: winuser.h:1093
#define LR_COPYDELETEORG
Definition: winuser.h:1094
#define LR_SHARED
Definition: winuser.h:1103
#define LR_DEFAULTSIZE
Definition: winuser.h:1097
#define LR_LOADMAP3DCOLORS
Definition: winuser.h:1100

Definition at line 11 of file CopyImage.c.

◆ LR_UNKNOWN_0x10000

#define LR_UNKNOWN_0x10000   0x10000

Definition at line 17 of file CopyImage.c.

Function Documentation

◆ CreateTestImage()

static HANDLE CreateTestImage ( UINT  uType)
static

Definition at line 19 of file CopyImage.c.

20{
21 HANDLE hImage;
22 switch (uType)
23 {
24 case IMAGE_BITMAP:
25 {
27 hImage = (HANDLE)CreateCompatibleBitmap(hDC, 10, 10);
29 break;
30 }
31 case IMAGE_CURSOR:
32 hImage = (HANDLE)LoadCursor(NULL, IDC_ARROW);
33 break;
34 case IMAGE_ICON:
36 break;
37 }
38 return hImage;
39}
static HDC hDC
Definition: 3dtext.c:33
#define NULL
Definition: types.h:112
static HDC
Definition: imagelist.c:88
PVOID HANDLE
Definition: typedefs.h:73
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
HBITMAP WINAPI CreateCompatibleBitmap(_In_ HDC hdc, _In_ INT cx, _In_ INT cy)
BOOL WINAPI DeleteDC(_In_ HDC)
#define IMAGE_BITMAP
Definition: winuser.h:211
#define IMAGE_ICON
Definition: winuser.h:212
#define IDC_ARROW
Definition: winuser.h:687
#define IDI_APPLICATION
Definition: winuser.h:704
#define LoadIcon
Definition: winuser.h:5825
#define LoadCursor
Definition: winuser.h:5824
#define IMAGE_CURSOR
Definition: winuser.h:213

Referenced by Test_CopyImage_Flags().

◆ START_TEST()

START_TEST ( CopyImage  )

Definition at line 79 of file CopyImage.c.

80{
84}
static VOID Test_CopyImage_Flags(UINT uType)
Definition: CopyImage.c:42

◆ Test_CopyImage_Flags()

static VOID Test_CopyImage_Flags ( UINT  uType)
static

Definition at line 42 of file CopyImage.c.

43{
44 UINT iBit, uBit, uValidFlags = COPYIMAGE_VALID_FLAGS;
45 HANDLE hImage, hCopiedImage;
46
48 uValidFlags |= LR_UNKNOWN_0x10000;
49
50 hImage = CreateTestImage(uType);
51 for (iBit = 0; iBit < sizeof(UINT) * CHAR_BIT; ++iBit)
52 {
53 uBit = (1 << iBit);
54
55 SetLastError(0xDEADFACE);
56 hCopiedImage = CopyImage(hImage, uType, 0, 0, uBit);
57
58 if (uValidFlags & uBit) // Valid flag?
59 {
60 ok(hCopiedImage != NULL, "iBit %u: uType %u: hCopiedImage was NULL\n", iBit, uType);
61 }
62 else
63 {
64 ok(hCopiedImage == NULL, "iBit %u: uType %u: hCopiedImage was %p\n", iBit, uType, hCopiedImage);
66 }
67
68 if (hCopiedImage)
69 DeleteObject(hCopiedImage);
70
71 /* If the original image was deleted, re-create it */
72 if (uBit & LR_COPYDELETEORG)
73 hImage = CreateTestImage(uType);
74 }
75
76 DeleteObject(hImage);
77}
static HANDLE CreateTestImage(UINT uType)
Definition: CopyImage.c:19
#define COPYIMAGE_VALID_FLAGS
Definition: CopyImage.c:11
#define LR_UNKNOWN_0x10000
Definition: CopyImage.c:17
#define ok(value,...)
Definition: atltest.h:57
#define ok_err(error)
Definition: atltest.h:124
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101
#define SetLastError(x)
Definition: compat.h:752
#define CHAR_BIT
Definition: urlcache.c:62
pKey DeleteObject()
unsigned int UINT
Definition: ndis.h:50
VERSIONHELPERAPI IsWindowsVistaOrGreater()
HANDLE WINAPI CopyImage(_In_ HANDLE, _In_ UINT, _In_ int, _In_ int, _In_ UINT)
Definition: cursoricon.c:2024

Referenced by START_TEST().