@@ -34,59 +34,6 @@ typedef struct
3434} CURSORICONFILEDIR ;
3535#include "poppack.h"
3636
37- CHAR * FindTempDirectoryA (void )
38- {
39- static CHAR lpTempPathBuffer [MAX_PATH ];
40- CHAR * out = lpTempPathBuffer ;
41- DWORD dwRetVal = 0 ;
42- FILE * fp ;
43- DWORD dwAttrib ;
44-
45- /* Gets the temp path env string. Not guaranteed to be valid. */
46- dwRetVal = GetTempPathA (MAX_PATH , lpTempPathBuffer );
47-
48- if (dwRetVal > MAX_PATH || (dwRetVal == 0 ))
49- {
50- ERR ("Find Temp Directory Failed\n" );
51- goto exit_error ;
52- }
53-
54- dwAttrib = GetFileAttributesA (lpTempPathBuffer );
55- if (dwAttrib != INVALID_FILE_ATTRIBUTES &&
56- (dwAttrib & FILE_ATTRIBUTE_DIRECTORY ))
57- TRACE ("Temp Subdir OK\n" );
58- else
59- goto exit_error ;
60-
61- if (dwRetVal + sizeof ("bmpout.ico1" )> MAX_PATH )
62- {
63- ERR ("Not Enough working room\n" );
64- goto exit_error ;
65- }
66- else
67- {
68- strcat (lpTempPathBuffer , "bmpout.ico1" );
69- }
70-
71- fp = fopen (lpTempPathBuffer , "wb" );
72- if (!fp )
73- {
74- ERR ("Temp Directory Path File Open Failed\n" );
75- goto exit_error ;
76- }
77- else
78- {
79- fclose (fp );
80- }
81-
82- remove (lpTempPathBuffer );
83- lpTempPathBuffer [strlen (lpTempPathBuffer ) - 1 ] = 0 ;
84-
85- return out ;
86- exit_error :
87- return 0 ;
88- }
89-
9037WCHAR * FindTempDirectoryW (void )
9138{
9239 static WCHAR lpTempPathBuffer [MAX_PATH + 1 ];
@@ -175,7 +122,7 @@ void PNGtoBMP(_In_ LPBYTE pngbits, _In_ DWORD filesize, _Out_ LPBYTE outbits)
175122 int bpp = 0 ;
176123 int image_size = 0 ;
177124 FILE * fp ;
178- CHAR lpTempPathBuffer [MAX_PATH + 1 ];
125+ WCHAR lpTempPathBuffer [MAX_PATH + 1 ];
179126 MEMORY_READER_STATE memory_reader_state ;
180127 png_bytep mem_read_ptr = (png_bytep )& memory_reader_state ;
181128 png_uint_32 width , height , channels ;
@@ -289,12 +236,12 @@ void PNGtoBMP(_In_ LPBYTE pngbits, _In_ DWORD filesize, _Out_ LPBYTE outbits)
289236 pos += (stride * width ) % 4 ;
290237 }
291238
292- if (FindTempDirectoryA () == NULL )
239+ if (FindTempDirectoryW () == NULL )
293240 ERR ("Temp Directory Not Found\n" );
294241 else
295242 {
296- strcpy (lpTempPathBuffer , FindTempDirectoryA ());
297- TRACE ("Temp File Name is %s \n" , lpTempPathBuffer );
243+ wcscpy (lpTempPathBuffer , FindTempDirectoryW ());
244+ TRACE ("Temp File Name is %S \n" , lpTempPathBuffer );
298245 }
299246
300247 /* Clean up after the read, and free any memory allocated */
@@ -328,16 +275,16 @@ void PNGtoBMP(_In_ LPBYTE pngbits, _In_ DWORD filesize, _Out_ LPBYTE outbits)
328275 return ;
329276 }
330277
331- remove (lpTempPathBuffer );
332- fp = fopen (lpTempPathBuffer , "ab" );
278+ _wremove (lpTempPathBuffer );
279+ fp = _wfopen (lpTempPathBuffer , L "ab" );
333280 if (!fp )
334281 {
335- ERR ("File Open Failed for '%s '.\n" , lpTempPathBuffer );
282+ ERR ("File Open Failed for '%S '.\n" , lpTempPathBuffer );
336283 }
337284
338285 if (fp == INVALID_HANDLE_VALUE )
339286 {
340- ERR ("can't write '%s '\n" , lpTempPathBuffer );
287+ ERR ("can't write '%S '\n" , lpTempPathBuffer );
341288 GlobalFree (data );
342289 return ;
343290 }
0 commit comments