VLC_ADD_LDFLAGS([vlc],[-lws2_32 -lnetapi32 -lwinmm -mwindows])
VLC_ADD_LDFLAGS([vcdx cddax],[-lwinmm])
VLC_ADD_LDFLAGS([ipv4 ipv6 access_http access_mms access_udp access_tcp access_ftp access_output_udp sap slp http stream_out_standard stream_out_rtp vod_rtsp telnet netsync],[-lws2_32])
- VLC_ADD_LDFLAGS([ipv4],[-liphlpapi])
fi
if test "${SYS}" = "mingwce"; then
# add ws2 for closesocket, select, recv
VLC_ADD_CPPFLAGS([vlc],[-Dmain(a,b)=maince(a,b)])
VLC_ADD_LDFLAGS([vlc],[-lws2 -e WinMainCRTStartup])
VLC_ADD_LDFLAGS([ipv4 ipv6 access_http access_mms access_udp access_tcp access_ftp access_output_udp sap http netsync],[-lws2])
- VLC_ADD_LDFLAGS([ipv4],[-liphlpapi])
fi
;;
*nto*)
dnl
dnl Iconv stuff
dnl
+if test "${SYS}" != "mingwce"; then
AS_IF([test "$am_cv_func_iconv" != "yes"],
[AC_MSG_ERROR([libiconv is needed for VLC to work properly])])
+fi
VLC_ADD_CFLAGS([vlc],[${INCICONV}])
VLC_ADD_LDFLAGS([vlc],[${LIBICONV}])
#if defined (WIN32) || defined (UNDER_CE)
else
{
+ DWORD WINAPI (*OurGetBestInterface)(IPAddr,PDWORD);
+ DWORD WINAPI (*OurGetIpAddrTable)(PMIB_IPADDRTABLE,PULONG,BOOL);
+ HINSTANCE hiphlpapi = LoadLibrary(_T("Iphlpapi.dll"));
DWORD i_index;
- if( GetBestInterface( sock.sin_addr.s_addr,
- &i_index ) == NO_ERROR )
+
+ if( hiphlpapi )
+ {
+ OurGetBestInterface =
+ (void *)GetProcAddress( hiphlpapi,
+ _T("GetBestInterface") );
+ OurGetIpAddrTable =
+ (void *)GetProcAddress( hiphlpapi,
+ _T("GetIpAddrTable") );
+ }
+
+ if( hiphlpapi && OurGetBestInterface && OurGetIpAddrTable &&
+ OurGetBestInterface( sock.sin_addr.s_addr,
+ &i_index ) == NO_ERROR )
{
PMIB_IPADDRTABLE p_table;
DWORD i = 0;
msg_Dbg( p_this, "Winsock best interface is %lu",
(unsigned long)i_index );
- GetIpAddrTable( NULL, &i, 0 );
+ OurGetIpAddrTable( NULL, &i, 0 );
p_table = (PMIB_IPADDRTABLE)malloc( i );
if( p_table != NULL )
{
- if( GetIpAddrTable( p_table, &i, 0 ) == NO_ERROR)
+ if( OurGetIpAddrTable( p_table, &i, 0 ) == NO_ERROR )
{
for( i = 0; i < p_table->dwNumEntries; i-- )
{
}
}
}
- else
- msg_Warn( p_this, "GetIpAddrTable failed" );
+ else msg_Warn( p_this, "GetIpAddrTable failed" );
free( p_table );
}
}
- else
- msg_Dbg( p_this, "GetBestInterface failed" );
+ else msg_Dbg( p_this, "GetBestInterface failed" );
+
+ if( hiphlpapi ) FreeLibrary( hiphlpapi );
}
#endif
if( psz_if_addr != NULL ) free( psz_if_addr );
# include <windows.h>
#endif
+#ifdef UNDER_CE
+# define strcoll strcmp
+#endif
+
/*****************************************************************************
* getenv: just in case, but it should never be called
*****************************************************************************/
* vlc_*dir_wrapper: wrapper under Windows to return the list of drive letters
* when called with an empty argument or just '\'
*****************************************************************************/
-#if defined(WIN32) || defined(UNDER_CE)
+#if defined(WIN32) && !defined(UNDER_CE)
typedef struct vlc_DIR
{
DIR *p_real_dir;
}
}
-#elif defined( WIN32 )
+#elif defined( WIN32 ) && !defined( UNDER_CE )
SECURITY_ATTRIBUTES saAttr;
PROCESS_INFORMATION piProcInfo;
STARTUPINFO siStartInfo;