diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-12-20 00:49:12 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-12-20 00:49:47 +0100 |
commit | 3d6545d51e6c031a77b0abf7470c681034dd8193 (patch) | |
tree | c08af2c4aa65e0197a20258c4206993a052acd6b /libavformat/os_support.h | |
parent | a701a9cff4d53791ff811ebeaf1a644fca74191c (diff) | |
parent | 8ebf02f8f530240edf7e45f35f7647ef9dd44a58 (diff) | |
download | ffmpeg-3d6545d51e6c031a77b0abf7470c681034dd8193.tar.gz |
Merge commit '8ebf02f8f530240edf7e45f35f7647ef9dd44a58'
* commit '8ebf02f8f530240edf7e45f35f7647ef9dd44a58':
libavformat: Only use MoveFileExA when targeting the desktop API subset
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/os_support.h')
-rw-r--r-- | libavformat/os_support.h | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/libavformat/os_support.h b/libavformat/os_support.h index ffae4b7293..a3329119c0 100644 --- a/libavformat/os_support.h +++ b/libavformat/os_support.h @@ -146,6 +146,18 @@ int ff_poll(struct pollfd *fds, nfds_t numfds, int timeout); #include <windows.h> #include "libavutil/wchar_filename.h" +#ifdef WINAPI_FAMILY +#include <winapifamily.h> +// If a WINAPI_FAMILY is defined, check that the desktop API subset +// is enabled +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) +#define USE_MOVEFILEEXA +#endif +#else +// If no WINAPI_FAMILY is defined, assume the full API subset +#define USE_MOVEFILEEXA +#endif + #define DEF_FS_FUNCTION(name, wfunc, afunc) \ static inline int win32_##name(const char *filename_utf8) \ { \ @@ -197,13 +209,14 @@ static inline int win32_rename(const char *src_utf8, const char *dest_utf8) fallback: /* filename may be be in CP_ACP */ -#if HAVE_MOVEFILEEXA +#ifdef USE_MOVEFILEEXA ret = MoveFileExA(src_utf8, dest_utf8, MOVEFILE_REPLACE_EXISTING); if (ret) errno = EPERM; #else - /* Windows Phone doesn't have MoveFileExA. However, it's unlikely - * that anybody would input filenames in CP_ACP there, so this + /* Windows Phone doesn't have MoveFileExA, and for Windows Store apps, + * it is available but not allowed by the app certification kit. However, + * it's unlikely that anybody would input filenames in CP_ACP there, so this * fallback is kept mostly for completeness. Alternatively we could * do MultiByteToWideChar(CP_ACP) and use MoveFileExW, but doing * explicit conversions with CP_ACP is allegedly forbidden in windows |