fork for IVI
[profile/ivi/vim.git] / src / xpm_w32.c
1 /*
2  * Load XPM image.
3  *
4  * This function is placed in separate file because Xpm headers conflict with
5  * Vim ones :(
6  *
7  * Written by Sergey Khorev.
8  * http://iamphet.nm.ru/vim/index.html
9  */
10
11 #ifndef WIN32_LEAN_AND_MEAN
12 # define WIN32_LEAN_AND_MEAN
13 #endif
14 #include <windows.h>
15
16 /* reduced def from Vim.h */
17 #ifndef __ARGS
18 # if defined(__STDC__) || defined(__GNUC__) || defined(WIN3264)
19 #  define __ARGS(x) x
20 # else
21 #  define __ARGS(x) ()
22 # endif
23 #endif
24
25 #include "xpm_w32.h"
26
27 /* Engage Windows support in libXpm */
28 #define FOR_MSW
29
30 #include "xpm.h"
31
32 /*
33  * Tries to load Xpm image from file 'filename'.
34  * If fails return -1.
35  * success - 0 and image and mask BITMAPS
36  */
37     int
38 LoadXpmImage(filename, hImage, hShape)
39     char    *filename;
40     HBITMAP *hImage;
41     HBITMAP *hShape;
42 {
43     XImage          *img;   /* loaded image */
44     XImage          *shp;  /* shapeimage */
45     XpmAttributes   attr;
46     int             res;
47     HDC             hdc = CreateCompatibleDC(NULL);
48
49     attr.valuemask = 0;
50     res = XpmReadFileToImage(&hdc, filename, &img, &shp, &attr);
51     DeleteDC(hdc);
52     if (res < 0)
53         return -1;
54     else
55     {
56         *hImage = img->bitmap;
57         *hShape = shp->bitmap;
58         return 0;
59     }
60 }