2 * COMMDLG - File Dialogs
4 * Copyright 1994 Martin Ayotte
5 * Copyright 1996 Albrecht Kleine
10 #include "wine/winestring.h"
13 #include "debugtools.h"
15 #include "heap.h" /* Has to go */
17 DEFAULT_DEBUG_CHANNEL(commdlg
)
21 /***********************************************************************
22 * GetFileTitleA (COMDLG32.8)
25 short WINAPI
GetFileTitleA(LPCSTR lpFile
, LPSTR lpTitle
, UINT cbBuf
)
29 TRACE("(%p %p %d); \n", lpFile
, lpTitle
, cbBuf
);
31 if(lpFile
== NULL
|| lpTitle
== NULL
)
39 if(strpbrk(lpFile
, "*[]"))
44 if(lpFile
[len
] == '/' || lpFile
[len
] == '\\' || lpFile
[len
] == ':')
47 for(i
= len
; i
>= 0; i
--)
49 if (lpFile
[i
] == '/' || lpFile
[i
] == '\\' || lpFile
[i
] == ':')
59 TRACE("---> '%s' \n", &lpFile
[i
]);
61 len
= strlen(lpFile
+i
)+1;
65 strncpy(lpTitle
, &lpFile
[i
], len
);
70 /***********************************************************************
71 * GetFileTitleW (COMDLG32.9)
74 short WINAPI
GetFileTitleW(LPCWSTR lpFile
, LPWSTR lpTitle
, UINT cbBuf
)
76 LPSTR file
= HEAP_strdupWtoA(GetProcessHeap(), 0, lpFile
); /* Has to go */
77 LPSTR title
= HeapAlloc(GetProcessHeap(), 0, cbBuf
);
80 ret
= GetFileTitleA(file
, title
, cbBuf
);
82 lstrcpynAtoW(lpTitle
, title
, cbBuf
);
83 HeapFree(GetProcessHeap(), 0, file
);
84 HeapFree(GetProcessHeap(), 0, title
);
89 /***********************************************************************
90 * GetFileTitle16 (COMMDLG.27)
92 short WINAPI
GetFileTitle16(LPCSTR lpFile
, LPSTR lpTitle
, UINT16 cbBuf
)
94 return GetFileTitleA(lpFile
, lpTitle
, cbBuf
);