Win32: browse Network Neighborhood
This commit is contained in:
parent
282b472b71
commit
58eaeda164
@ -63,7 +63,7 @@
|
|||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<AdditionalDependencies>zlib.lib;SDL2.lib;SDL2main.lib;SDL2_image.lib;lua53.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>mpr.lib;zlib.lib;SDL2.lib;SDL2main.lib;SDL2_image.lib;lua53.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(ZLibLibDir);$(SDL2LibDir);$(SDL2ImageLibDir);$(LuaLibDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(ZLibLibDir);$(SDL2LibDir);$(SDL2ImageLibDir);$(LuaLibDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
@ -84,7 +84,7 @@
|
|||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<AdditionalDependencies>zlib.lib;SDL2.lib;SDL2main.lib;SDL2_image.lib;lua53.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>mpr.lib;zlib.lib;SDL2.lib;SDL2main.lib;SDL2_image.lib;lua53.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(ZLibLibDir);$(SDL2LibDir);$(SDL2ImageLibDir);$(LuaLibDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(ZLibLibDir);$(SDL2LibDir);$(SDL2ImageLibDir);$(LuaLibDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
@ -217,4 +217,4 @@
|
|||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@ -58,7 +58,7 @@
|
|||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<AdditionalDependencies>libtiff.lib;lua53.lib;libpng16.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>mpr.lib;libtiff.lib;lua53.lib;libpng16.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(TIFFLibDir);$(PNGLibDirDebug);$(LuaLibDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(TIFFLibDir);$(PNGLibDirDebug);$(LuaLibDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
@ -77,7 +77,7 @@
|
|||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<AdditionalDependencies>libtiff.lib;lua53.lib;libpng16.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>mpr.lib;libtiff.lib;lua53.lib;libpng16.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(TIFFLibDir);$(PNGLibDirRelease);$(LuaLibDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(TIFFLibDir);$(PNGLibDirRelease);$(LuaLibDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
|
|||||||
@ -63,7 +63,7 @@
|
|||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<AdditionalDependencies>zlib.lib;SDL.lib;SDLmain.lib;SDL_image.lib;lua53.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>mpr.lib;zlib.lib;SDL.lib;SDLmain.lib;SDL_image.lib;lua53.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(ZLibLibDir);$(SDLLibDir);$(SDLImageLibDir);$(LuaLibDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(ZLibLibDir);$(SDLLibDir);$(SDLImageLibDir);$(LuaLibDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
@ -84,7 +84,7 @@
|
|||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<AdditionalDependencies>zlib.lib;SDL.lib;SDLmain.lib;SDL_image.lib;lua53.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>mpr.lib;zlib.lib;SDL.lib;SDLmain.lib;SDL_image.lib;lua53.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(ZLibLibDir);$(SDLLibDir);$(SDLImageLibDir);$(LuaLibDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(ZLibLibDir);$(SDLLibDir);$(SDLImageLibDir);$(LuaLibDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
@ -217,4 +217,4 @@
|
|||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@ -129,6 +129,7 @@ ifdef COMSPEC
|
|||||||
LOPT += -L../3rdparty/usr-win32/lib -lgdi32 -lcomdlg32
|
LOPT += -L../3rdparty/usr-win32/lib -lgdi32 -lcomdlg32
|
||||||
PLATFORMFILES =
|
PLATFORMFILES =
|
||||||
endif
|
endif
|
||||||
|
LOPT += -lmpr
|
||||||
LOPT += -ltiff
|
LOPT += -ltiff
|
||||||
LOPT += -lpng -lz
|
LOPT += -lpng -lz
|
||||||
LUALOPT = -llua
|
LUALOPT = -llua
|
||||||
@ -501,7 +502,7 @@ endif
|
|||||||
STRIP = $(CROSS_STRIP)
|
STRIP = $(CROSS_STRIP)
|
||||||
BIN = ../bin/grafx2-$(API).exe
|
BIN = ../bin/grafx2-$(API).exe
|
||||||
COPT = -W -Wall -Wdeclaration-after-statement -O$(OPTIM) -g -ggdb $(TTFCOPT)
|
COPT = -W -Wall -Wdeclaration-after-statement -O$(OPTIM) -g -ggdb $(TTFCOPT)
|
||||||
LOPT = -mwindows -lmingw32 -lshlwapi $(TTFLOPT)
|
LOPT = -mwindows -lmingw32 -lshlwapi -lmpr $(TTFLOPT)
|
||||||
ifeq ($(API),sdl)
|
ifeq ($(API),sdl)
|
||||||
COPT += -Dmain=SDL_main $(shell $(CROSS_SDLCONFIG) --cflags)
|
COPT += -Dmain=SDL_main $(shell $(CROSS_SDLCONFIG) --cflags)
|
||||||
LOPT += -lSDLmain -lSDL $(shell $(CROSS_SDLCONFIG) --libs) -lSDL_image
|
LOPT += -lSDLmain -lSDL $(shell $(CROSS_SDLCONFIG) --libs) -lSDL_image
|
||||||
|
|||||||
@ -738,6 +738,7 @@ void Read_list_of_drives(T_Fileselector *list, byte name_length)
|
|||||||
list->Nb_directories++;
|
list->Nb_directories++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Enumerate_Network(list);
|
||||||
}
|
}
|
||||||
#elif defined(__MINT__)
|
#elif defined(__MINT__)
|
||||||
drive_bits = Drvmap(); //get drive map bitfield
|
drive_bits = Drvmap(); //get drive map bitfield
|
||||||
@ -822,12 +823,29 @@ void Read_list_of_drives(T_Fileselector *list, byte name_length)
|
|||||||
// Comparison of file names:
|
// Comparison of file names:
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
// case-insensitive
|
// case-insensitive
|
||||||
#define FILENAME_COMPARE strcasecmp
|
static int Windows_Path_Compare(const char * s1, const char * s2)
|
||||||
#define FILENAME_COMPARE_UNICODE wcsicmp
|
{
|
||||||
|
// trick to make network shares path (starting with \\)
|
||||||
|
// at the end of the list
|
||||||
|
if (s1[0] == '\\')
|
||||||
|
{
|
||||||
|
if (s2[0] != '\\')
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// s1[0] != '\\'
|
||||||
|
if (s2[0] == '\\')
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return strcasecmp(s1, s2);
|
||||||
|
}
|
||||||
|
#define FILENAME_COMPARE Windows_Path_Compare
|
||||||
|
#define FILENAME_COMPARE_UNICODE wcsicmp
|
||||||
#else
|
#else
|
||||||
// case-sensitive
|
// case-sensitive
|
||||||
#define FILENAME_COMPARE strcmp
|
#define FILENAME_COMPARE strcmp
|
||||||
#define FILENAME_COMPARE_UNICODE Unicode_strcmp
|
#define FILENAME_COMPARE_UNICODE Unicode_strcmp
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -33,6 +33,9 @@
|
|||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <shellapi.h>
|
#include <shellapi.h>
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
#define strdup _strdup
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef USE_X11
|
#ifdef USE_X11
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|||||||
58
src/io.c
58
src/io.c
@ -70,6 +70,8 @@
|
|||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "gfx2log.h"
|
#include "gfx2log.h"
|
||||||
#include "gfx2mem.h"
|
#include "gfx2mem.h"
|
||||||
|
// for the network browse
|
||||||
|
#include "filesel.h"
|
||||||
|
|
||||||
// Lit un octet
|
// Lit un octet
|
||||||
// Renvoie -1 si OK, 0 en cas d'erreur
|
// Renvoie -1 si OK, 0 en cas d'erreur
|
||||||
@ -1222,3 +1224,59 @@ char * Calculate_relative_path(const char * ref_path, const char * path)
|
|||||||
}
|
}
|
||||||
return rel_path;
|
return rel_path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(WIN32)
|
||||||
|
static void Enumerate_Network_R(T_Fileselector *list, LPNETRESOURCEA lpnr)
|
||||||
|
{
|
||||||
|
// Mpr.lib
|
||||||
|
HANDLE hEnum;
|
||||||
|
DWORD r;
|
||||||
|
r = WNetOpenEnumA (RESOURCE_GLOBALNET, RESOURCETYPE_DISK, 0, lpnr, &hEnum);
|
||||||
|
if (r == NO_ERROR)
|
||||||
|
{
|
||||||
|
DWORD buffer_size = 16*1024;
|
||||||
|
DWORD count = -1;
|
||||||
|
LPNETRESOURCEA lpnrLocal = (LPNETRESOURCEA) GlobalAlloc(GPTR, buffer_size);
|
||||||
|
do
|
||||||
|
{
|
||||||
|
ZeroMemory(lpnrLocal, buffer_size);
|
||||||
|
r = WNetEnumResourceA(hEnum, &count, lpnrLocal, &buffer_size);
|
||||||
|
if (r == NO_ERROR)
|
||||||
|
{
|
||||||
|
DWORD i;
|
||||||
|
for (i = 0 ; i < count; i++)
|
||||||
|
{
|
||||||
|
GFX2_Log(GFX2_DEBUG, "%08x %08x %08x %s %s %s %s\n",
|
||||||
|
lpnrLocal[i].dwType, lpnrLocal[i].dwDisplayType,
|
||||||
|
lpnrLocal[i].dwUsage,
|
||||||
|
lpnrLocal[i].lpProvider, lpnrLocal[i].lpLocalName,
|
||||||
|
lpnrLocal[i].lpRemoteName, lpnrLocal[i].lpComment);
|
||||||
|
if (lpnrLocal[i].dwUsage & RESOURCEUSAGE_CONTAINER)
|
||||||
|
{
|
||||||
|
Enumerate_Network_R(list, &lpnrLocal[i]);
|
||||||
|
}
|
||||||
|
if (lpnrLocal[i].dwType == RESOURCETYPE_DISK &&
|
||||||
|
lpnrLocal[i].dwDisplayType == RESOURCEDISPLAYTYPE_SHARE)
|
||||||
|
{
|
||||||
|
Add_element_to_list(list, lpnrLocal[i].lpRemoteName,
|
||||||
|
Format_filename(lpnrLocal[i].lpRemoteName, 19-1, FSOBJECT_DRIVE),
|
||||||
|
FSOBJECT_DRIVE, ICON_NETWORK);
|
||||||
|
list->Nb_directories++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while (0);
|
||||||
|
GlobalFree((HGLOBAL) lpnrLocal);
|
||||||
|
WNetCloseEnum(hEnum);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Enumerate_Network(T_Fileselector *list)
|
||||||
|
{
|
||||||
|
Enumerate_Network_R(list, NULL);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
4
src/io.h
4
src/io.h
@ -201,5 +201,9 @@ int Remove_directory(const char * path);
|
|||||||
/// Calculate relative path
|
/// Calculate relative path
|
||||||
char * Calculate_relative_path(const char * ref_path, const char * path);
|
char * Calculate_relative_path(const char * ref_path, const char * path);
|
||||||
|
|
||||||
|
#if defined(WIN32)
|
||||||
|
void Enumerate_Network(T_Fileselector *list);
|
||||||
|
#endif
|
||||||
|
|
||||||
/** @}*/
|
/** @}*/
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user