diff options
Diffstat (limited to 'src/libs/7zip/win/CPP/Windows/Net.cpp')
-rw-r--r-- | src/libs/7zip/win/CPP/Windows/Net.cpp | 380 |
1 files changed, 0 insertions, 380 deletions
diff --git a/src/libs/7zip/win/CPP/Windows/Net.cpp b/src/libs/7zip/win/CPP/Windows/Net.cpp deleted file mode 100644 index b0a18732a..000000000 --- a/src/libs/7zip/win/CPP/Windows/Net.cpp +++ /dev/null @@ -1,380 +0,0 @@ -// Windows/Net.cpp - -#include "StdAfx.h" - -#ifndef _UNICODE -#include "Common/StringConvert.h" -#endif - -#include "Windows/Net.h" - -#ifndef _UNICODE -extern bool g_IsNT; -#endif - -namespace NWindows { -namespace NNet { - -DWORD CEnum::Open(DWORD scope, DWORD type, DWORD usage, LPNETRESOURCE netResource) -{ - Close(); - DWORD result = ::WNetOpenEnum(scope, type, usage, netResource, &_handle); - _handleAllocated = (result == NO_ERROR); - return result; -} - -#ifndef _UNICODE -DWORD CEnum::Open(DWORD scope, DWORD type, DWORD usage, LPNETRESOURCEW netResource) -{ - Close(); - DWORD result = ::WNetOpenEnumW(scope, type, usage, netResource, &_handle); - _handleAllocated = (result == NO_ERROR); - return result; -} -#endif - -static void SetComplexString(bool &defined, CSysString &destString, LPCTSTR srsString) -{ - defined = (srsString != 0); - if (defined) - destString = srsString; - else - destString.Empty(); -} - -static void ConvertNETRESOURCEToCResource(const NETRESOURCE &netResource, CResource &resource) -{ - resource.Scope = netResource.dwScope; - resource.Type = netResource.dwType; - resource.DisplayType = netResource.dwDisplayType; - resource.Usage = netResource.dwUsage; - SetComplexString(resource.LocalNameIsDefined, resource.LocalName, netResource.lpLocalName); - SetComplexString(resource.RemoteNameIsDefined, resource.RemoteName, netResource.lpRemoteName); - SetComplexString(resource.CommentIsDefined, resource.Comment, netResource.lpComment); - SetComplexString(resource.ProviderIsDefined, resource.Provider, netResource.lpProvider); -} - -static void SetComplexString2(LPTSTR *destString, bool defined, const CSysString &srcString) -{ - if (defined) - *destString = (TCHAR *)(const TCHAR *)srcString; - else - *destString = 0; -} - -static void ConvertCResourceToNETRESOURCE(const CResource &resource, NETRESOURCE &netResource) -{ - netResource.dwScope = resource.Scope; - netResource.dwType = resource.Type; - netResource.dwDisplayType = resource.DisplayType; - netResource.dwUsage = resource.Usage; - SetComplexString2(&netResource.lpLocalName, resource.LocalNameIsDefined, resource.LocalName); - SetComplexString2(&netResource.lpRemoteName, resource.RemoteNameIsDefined, resource.RemoteName); - SetComplexString2(&netResource.lpComment, resource.CommentIsDefined, resource.Comment); - SetComplexString2(&netResource.lpProvider, resource.ProviderIsDefined, resource.Provider); -} - -#ifndef _UNICODE - -static void SetComplexString(bool &defined, UString &destString, LPCWSTR srsString) -{ - defined = (srsString != 0); - if (defined) - destString = srsString; - else - destString.Empty(); -} - -static void ConvertNETRESOURCEToCResource(const NETRESOURCEW &netResource, CResourceW &resource) -{ - resource.Scope = netResource.dwScope; - resource.Type = netResource.dwType; - resource.DisplayType = netResource.dwDisplayType; - resource.Usage = netResource.dwUsage; - SetComplexString(resource.LocalNameIsDefined, resource.LocalName, netResource.lpLocalName); - SetComplexString(resource.RemoteNameIsDefined, resource.RemoteName, netResource.lpRemoteName); - SetComplexString(resource.CommentIsDefined, resource.Comment, netResource.lpComment); - SetComplexString(resource.ProviderIsDefined, resource.Provider, netResource.lpProvider); -} - -static void SetComplexString2(LPWSTR *destString, bool defined, const UString &srcString) -{ - if (defined) - *destString = (WCHAR *)(const WCHAR *)srcString; - else - *destString = 0; -} - -static void ConvertCResourceToNETRESOURCE(const CResourceW &resource, NETRESOURCEW &netResource) -{ - netResource.dwScope = resource.Scope; - netResource.dwType = resource.Type; - netResource.dwDisplayType = resource.DisplayType; - netResource.dwUsage = resource.Usage; - SetComplexString2(&netResource.lpLocalName, resource.LocalNameIsDefined, resource.LocalName); - SetComplexString2(&netResource.lpRemoteName, resource.RemoteNameIsDefined, resource.RemoteName); - SetComplexString2(&netResource.lpComment, resource.CommentIsDefined, resource.Comment); - SetComplexString2(&netResource.lpProvider, resource.ProviderIsDefined, resource.Provider); -} - -static void ConvertResourceWToResource(const CResourceW &resourceW, CResource &resource) -{ - *(CResourceBase *)&resource = *(CResourceBase *)&resourceW; - resource.LocalName = GetSystemString(resourceW.LocalName); - resource.RemoteName = GetSystemString(resourceW.RemoteName); - resource.Comment = GetSystemString(resourceW.Comment); - resource.Provider = GetSystemString(resourceW.Provider); -} - -static void ConvertResourceToResourceW(const CResource &resource, CResourceW &resourceW) -{ - *(CResourceBase *)&resourceW = *(CResourceBase *)&resource; - resourceW.LocalName = GetUnicodeString(resource.LocalName); - resourceW.RemoteName = GetUnicodeString(resource.RemoteName); - resourceW.Comment = GetUnicodeString(resource.Comment); - resourceW.Provider = GetUnicodeString(resource.Provider); -} -#endif - -DWORD CEnum::Open(DWORD scope, DWORD type, DWORD usage, const CResource *resource) -{ - NETRESOURCE netResource; - LPNETRESOURCE pointer; - if (resource == 0) - pointer = 0; - else - { - ConvertCResourceToNETRESOURCE(*resource, netResource); - pointer = &netResource; - } - return Open(scope, type, usage, pointer); -} - -#ifndef _UNICODE -DWORD CEnum::Open(DWORD scope, DWORD type, DWORD usage, const CResourceW *resource) -{ - if (g_IsNT) - { - NETRESOURCEW netResource; - LPNETRESOURCEW pointer; - if (resource == 0) - pointer = 0; - else - { - ConvertCResourceToNETRESOURCE(*resource, netResource); - pointer = &netResource; - } - return Open(scope, type, usage, pointer); - } - CResource *pointer; - CResource resourceA; - if (resource == 0) - pointer = 0; - else - { - ConvertResourceWToResource(*resource, resourceA); - pointer = &resourceA; - } - return Open(scope, type, usage, pointer); -} -#endif - -DWORD CEnum::Close() -{ - if (!_handleAllocated) - return NO_ERROR; - DWORD result = ::WNetCloseEnum(_handle); - _handleAllocated = (result != NO_ERROR); - return result; -} - -DWORD CEnum::Next(LPDWORD lpcCount, LPVOID lpBuffer, LPDWORD lpBufferSize) -{ - return ::WNetEnumResource(_handle, lpcCount, lpBuffer, lpBufferSize); -} - -#ifndef _UNICODE -DWORD CEnum::NextW(LPDWORD lpcCount, LPVOID lpBuffer, LPDWORD lpBufferSize) -{ - return ::WNetEnumResourceW(_handle, lpcCount, lpBuffer, lpBufferSize); -} -#endif - -DWORD CEnum::Next(CResource &resource) -{ - CByteBuffer byteBuffer; - const DWORD kBufferSize = 16384; - byteBuffer.SetCapacity(kBufferSize); - LPNETRESOURCE lpnrLocal = (LPNETRESOURCE) (BYTE *)(byteBuffer); - ZeroMemory(lpnrLocal, kBufferSize); - DWORD bufferSize = kBufferSize; - DWORD numEntries = 1; - DWORD result = Next(&numEntries, lpnrLocal, &bufferSize); - if (result != NO_ERROR) - return result; - if (numEntries != 1) - return (DWORD)E_FAIL; - ConvertNETRESOURCEToCResource(lpnrLocal[0], resource); - return result; -} - -#ifndef _UNICODE -DWORD CEnum::Next(CResourceW &resource) -{ - if (g_IsNT) - { - CByteBuffer byteBuffer; - const DWORD kBufferSize = 16384; - byteBuffer.SetCapacity(kBufferSize); - LPNETRESOURCEW lpnrLocal = (LPNETRESOURCEW) (BYTE *)(byteBuffer); - ZeroMemory(lpnrLocal, kBufferSize); - DWORD bufferSize = kBufferSize; - DWORD numEntries = 1; - DWORD result = NextW(&numEntries, lpnrLocal, &bufferSize); - if (result != NO_ERROR) - return result; - if (numEntries != 1) - return (DWORD)E_FAIL; - ConvertNETRESOURCEToCResource(lpnrLocal[0], resource); - return result; - } - CResource resourceA; - DWORD result = Next(resourceA); - ConvertResourceToResourceW(resourceA, resource); - return result; -} -#endif - - -DWORD GetResourceParent(const CResource &resource, CResource &parentResource) -{ - CByteBuffer byteBuffer; - const DWORD kBufferSize = 16384; - byteBuffer.SetCapacity(kBufferSize); - LPNETRESOURCE lpnrLocal = (LPNETRESOURCE) (BYTE *)(byteBuffer); - ZeroMemory(lpnrLocal, kBufferSize); - DWORD bufferSize = kBufferSize; - NETRESOURCE netResource; - ConvertCResourceToNETRESOURCE(resource, netResource); - DWORD result = ::WNetGetResourceParent(&netResource, lpnrLocal, &bufferSize); - if (result != NO_ERROR) - return result; - ConvertNETRESOURCEToCResource(lpnrLocal[0], parentResource); - return result; -} - -#ifndef _UNICODE -DWORD GetResourceParent(const CResourceW &resource, CResourceW &parentResource) -{ - if (g_IsNT) - { - CByteBuffer byteBuffer; - const DWORD kBufferSize = 16384; - byteBuffer.SetCapacity(kBufferSize); - LPNETRESOURCEW lpnrLocal = (LPNETRESOURCEW) (BYTE *)(byteBuffer); - ZeroMemory(lpnrLocal, kBufferSize); - DWORD bufferSize = kBufferSize; - NETRESOURCEW netResource; - ConvertCResourceToNETRESOURCE(resource, netResource); - DWORD result = ::WNetGetResourceParentW(&netResource, lpnrLocal, &bufferSize); - if (result != NO_ERROR) - return result; - ConvertNETRESOURCEToCResource(lpnrLocal[0], parentResource); - return result; - } - CResource resourceA, parentResourceA; - ConvertResourceWToResource(resource, resourceA); - DWORD result = GetResourceParent(resourceA, parentResourceA); - ConvertResourceToResourceW(parentResourceA, parentResource); - return result; -} -#endif - -DWORD GetResourceInformation(const CResource &resource, - CResource &destResource, CSysString &systemPathPart) -{ - CByteBuffer byteBuffer; - const DWORD kBufferSize = 16384; - byteBuffer.SetCapacity(kBufferSize); - LPNETRESOURCE lpnrLocal = (LPNETRESOURCE) (BYTE *)(byteBuffer); - ZeroMemory(lpnrLocal, kBufferSize); - DWORD bufferSize = kBufferSize; - NETRESOURCE netResource; - ConvertCResourceToNETRESOURCE(resource, netResource); - LPTSTR lplpSystem; - DWORD result = ::WNetGetResourceInformation(&netResource, - lpnrLocal, &bufferSize, &lplpSystem); - if (result != NO_ERROR) - return result; - if (lplpSystem != 0) - systemPathPart = lplpSystem; - ConvertNETRESOURCEToCResource(lpnrLocal[0], destResource); - return result; -} - -#ifndef _UNICODE -DWORD GetResourceInformation(const CResourceW &resource, - CResourceW &destResource, UString &systemPathPart) -{ - if (g_IsNT) - { - CByteBuffer byteBuffer; - const DWORD kBufferSize = 16384; - byteBuffer.SetCapacity(kBufferSize); - LPNETRESOURCEW lpnrLocal = (LPNETRESOURCEW) (BYTE *)(byteBuffer); - ZeroMemory(lpnrLocal, kBufferSize); - DWORD bufferSize = kBufferSize; - NETRESOURCEW netResource; - ConvertCResourceToNETRESOURCE(resource, netResource); - LPWSTR lplpSystem; - DWORD result = ::WNetGetResourceInformationW(&netResource, - lpnrLocal, &bufferSize, &lplpSystem); - if (result != NO_ERROR) - return result; - if (lplpSystem != 0) - systemPathPart = lplpSystem; - ConvertNETRESOURCEToCResource(lpnrLocal[0], destResource); - return result; - } - CResource resourceA, destResourceA; - ConvertResourceWToResource(resource, resourceA); - AString systemPathPartA; - DWORD result = GetResourceInformation(resourceA, destResourceA, systemPathPartA); - ConvertResourceToResourceW(destResourceA, destResource); - systemPathPart = GetUnicodeString(systemPathPartA); - return result; -} -#endif - -DWORD AddConnection2(const CResource &resource, - LPCTSTR password, LPCTSTR userName, DWORD flags) -{ - NETRESOURCE netResource; - ConvertCResourceToNETRESOURCE(resource, netResource); - return ::WNetAddConnection2(&netResource, - password, userName, flags); -} - -DWORD AddConnection2(const CResource &resource, LPCTSTR password, LPCTSTR userName, DWORD flags); - -#ifndef _UNICODE -DWORD AddConnection2(const CResourceW &resource, LPCWSTR password, LPCWSTR userName, DWORD flags) -{ - if (g_IsNT) - { - NETRESOURCEW netResource; - ConvertCResourceToNETRESOURCE(resource, netResource); - return ::WNetAddConnection2W(&netResource,password, userName, flags); - } - CResource resourceA; - ConvertResourceWToResource(resource, resourceA); - CSysString passwordA = GetSystemString(password); - CSysString userNameA = GetSystemString(userName); - return AddConnection2(resourceA, - password ? (LPCTSTR)passwordA: 0, - userName ? (LPCTSTR)userNameA: 0, - flags); -} -#endif - -}} |