Imported Upstream version 0.6.3
[fdkaac.git] / src / compat_win32.c
index 44822816afed5554bec473a6cb3f65ab5f97c5e0..8acbda2de858f838d22727534d79865db4618864 100644 (file)
 #include "compat.h"
 #define WIN32_LEAN_AND_MEAN
 #include <windows.h>
-
-typedef struct
-{
-    int newmode;
-} _startupinfo;
-
-extern
-int __wgetmainargs(int *, wchar_t ***, wchar_t ***, int, _startupinfo *);
+#include <shellapi.h>
 
 int64_t aacenc_timer(void)
 {
@@ -41,6 +34,11 @@ int64_t aacenc_timer(void)
     return (int64_t)tv.time * 1000 + tv.millitm;
 }
 
+int aacenc_seekable(FILE *fp)
+{
+    return GetFileType((HANDLE)_get_osfhandle(_fileno(fp))) == FILE_TYPE_DISK;
+}
+
 static
 int codepage_decode_wchar(int codepage, const char *from, wchar_t **to)
 {
@@ -98,13 +96,13 @@ void aacenc_free_mainargs(void)
 void aacenc_getmainargs(int *argc, char ***argv)
 {
     int i;
-    wchar_t **wargv, **envp;
-    _startupinfo si = { 0 };
+    wchar_t **wargv;
 
-    __wgetmainargs(argc, &wargv, &envp, 1, &si);
+    wargv = CommandLineToArgvW(GetCommandLineW(), argc);
     *argv = malloc((*argc + 1) * sizeof(char*));
     for (i = 0; i < *argc; ++i)
         codepage_encode_wchar(CP_UTF8, wargv[i], &(*argv)[i]);
+        LocalFree(wargv);
     (*argv)[*argc] = 0;
     __aacenc_argv__ = *argv;
     atexit(aacenc_free_mainargs);
This page took 0.010247 seconds and 4 git commands to generate.