mirror of
https://github.com/reactos/reactos.git
synced 2026-05-30 14:34:57 +08:00
[IPCONFIG] Get rid of tchar.h
This commit is contained in:
@@ -6,7 +6,6 @@
|
||||
*/
|
||||
/*
|
||||
* TODO:
|
||||
* fix renew / release
|
||||
* implement registerdns, showclassid, setclassid
|
||||
*/
|
||||
|
||||
@@ -20,7 +19,6 @@
|
||||
#include <winreg.h>
|
||||
#include <winnls.h>
|
||||
#include <stdio.h>
|
||||
#include <tchar.h>
|
||||
#include <time.h>
|
||||
#include <iphlpapi.h>
|
||||
#include <ndk/rtlfuncs.h>
|
||||
@@ -40,7 +38,7 @@
|
||||
typedef struct _RECORDTYPE
|
||||
{
|
||||
WORD wRecordType;
|
||||
LPTSTR pszRecordName;
|
||||
LPWSTR pszRecordName;
|
||||
} RECORDTYPE, *PRECORDTYPE;
|
||||
|
||||
#define GUID_LEN 40
|
||||
@@ -50,67 +48,67 @@ HANDLE ProcessHeap;
|
||||
|
||||
RECORDTYPE TypeArray[] =
|
||||
{
|
||||
{DNS_TYPE_ZERO, _T("ZERO")},
|
||||
{DNS_TYPE_A, _T("A")},
|
||||
{DNS_TYPE_NS, _T("NS")},
|
||||
{DNS_TYPE_MD, _T("MD")},
|
||||
{DNS_TYPE_MF, _T("MF")},
|
||||
{DNS_TYPE_CNAME, _T("CNAME")},
|
||||
{DNS_TYPE_SOA, _T("SOA")},
|
||||
{DNS_TYPE_MB, _T("MB")},
|
||||
{DNS_TYPE_MG, _T("MG")},
|
||||
{DNS_TYPE_MR, _T("MR")},
|
||||
{DNS_TYPE_NULL, _T("NULL")},
|
||||
{DNS_TYPE_WKS, _T("WKS")},
|
||||
{DNS_TYPE_PTR, _T("PTR")},
|
||||
{DNS_TYPE_HINFO, _T("HINFO")},
|
||||
{DNS_TYPE_MINFO, _T("MINFO")},
|
||||
{DNS_TYPE_MX, _T("MX")},
|
||||
{DNS_TYPE_TEXT, _T("TXT")},
|
||||
{DNS_TYPE_RP, _T("RP")},
|
||||
{DNS_TYPE_AFSDB, _T("AFSDB")},
|
||||
{DNS_TYPE_X25, _T("X25")},
|
||||
{DNS_TYPE_ISDN, _T("ISDN")},
|
||||
{DNS_TYPE_RT, _T("RT")},
|
||||
{DNS_TYPE_NSAP, _T("NSAP")},
|
||||
{DNS_TYPE_NSAPPTR, _T("NSAPPTR")},
|
||||
{DNS_TYPE_SIG, _T("SIG")},
|
||||
{DNS_TYPE_KEY, _T("KEY")},
|
||||
{DNS_TYPE_PX, _T("PX")},
|
||||
{DNS_TYPE_GPOS, _T("GPOS")},
|
||||
{DNS_TYPE_AAAA, _T("AAAA")},
|
||||
{DNS_TYPE_LOC, _T("LOC")},
|
||||
{DNS_TYPE_NXT, _T("NXT")},
|
||||
{DNS_TYPE_EID, _T("EID")},
|
||||
{DNS_TYPE_NIMLOC, _T("NIMLOC")},
|
||||
{DNS_TYPE_SRV, _T("SRV")},
|
||||
{DNS_TYPE_ATMA, _T("ATMA")},
|
||||
{DNS_TYPE_NAPTR, _T("NAPTR")},
|
||||
{DNS_TYPE_KX, _T("KX")},
|
||||
{DNS_TYPE_CERT, _T("CERT")},
|
||||
{DNS_TYPE_A6, _T("A6")},
|
||||
{DNS_TYPE_DNAME, _T("DNAME")},
|
||||
{DNS_TYPE_SINK, _T("SINK")},
|
||||
{DNS_TYPE_OPT, _T("OPT")},
|
||||
{DNS_TYPE_UINFO, _T("UINFO")},
|
||||
{DNS_TYPE_UID, _T("UID")},
|
||||
{DNS_TYPE_GID, _T("GID")},
|
||||
{DNS_TYPE_UNSPEC, _T("UNSPEC")},
|
||||
{DNS_TYPE_ADDRS, _T("ADDRS")},
|
||||
{DNS_TYPE_TKEY, _T("TKEY")},
|
||||
{DNS_TYPE_TSIG, _T("TSIG")},
|
||||
{DNS_TYPE_IXFR, _T("IXFR")},
|
||||
{DNS_TYPE_AXFR, _T("AXFR")},
|
||||
{DNS_TYPE_MAILB, _T("MAILB")},
|
||||
{DNS_TYPE_MAILA, _T("MAILA")},
|
||||
{DNS_TYPE_ALL, _T("ALL")},
|
||||
{DNS_TYPE_ZERO, L"ZERO"},
|
||||
{DNS_TYPE_A, L"A"},
|
||||
{DNS_TYPE_NS, L"NS"},
|
||||
{DNS_TYPE_MD, L"MD"},
|
||||
{DNS_TYPE_MF, L"MF"},
|
||||
{DNS_TYPE_CNAME, L"CNAME"},
|
||||
{DNS_TYPE_SOA, L"SOA"},
|
||||
{DNS_TYPE_MB, L"MB"},
|
||||
{DNS_TYPE_MG, L"MG"},
|
||||
{DNS_TYPE_MR, L"MR"},
|
||||
{DNS_TYPE_NULL, L"NULL"},
|
||||
{DNS_TYPE_WKS, L"WKS"},
|
||||
{DNS_TYPE_PTR, L"PTR"},
|
||||
{DNS_TYPE_HINFO, L"HINFO"},
|
||||
{DNS_TYPE_MINFO, L"MINFO"},
|
||||
{DNS_TYPE_MX, L"MX"},
|
||||
{DNS_TYPE_TEXT, L"TXT"},
|
||||
{DNS_TYPE_RP, L"RP"},
|
||||
{DNS_TYPE_AFSDB, L"AFSDB"},
|
||||
{DNS_TYPE_X25, L"X25"},
|
||||
{DNS_TYPE_ISDN, L"ISDN"},
|
||||
{DNS_TYPE_RT, L"RT"},
|
||||
{DNS_TYPE_NSAP, L"NSAP"},
|
||||
{DNS_TYPE_NSAPPTR, L"NSAPPTR"},
|
||||
{DNS_TYPE_SIG, L"SIG"},
|
||||
{DNS_TYPE_KEY, L"KEY"},
|
||||
{DNS_TYPE_PX, L"PX"},
|
||||
{DNS_TYPE_GPOS, L"GPOS"},
|
||||
{DNS_TYPE_AAAA, L"AAAA"},
|
||||
{DNS_TYPE_LOC, L"LOC"},
|
||||
{DNS_TYPE_NXT, L"NXT"},
|
||||
{DNS_TYPE_EID, L"EID"},
|
||||
{DNS_TYPE_NIMLOC, L"NIMLOC"},
|
||||
{DNS_TYPE_SRV, L"SRV"},
|
||||
{DNS_TYPE_ATMA, L"ATMA"},
|
||||
{DNS_TYPE_NAPTR, L"NAPTR"},
|
||||
{DNS_TYPE_KX, L"KX"},
|
||||
{DNS_TYPE_CERT, L"CERT"},
|
||||
{DNS_TYPE_A6, L"A6"},
|
||||
{DNS_TYPE_DNAME, L"DNAME"},
|
||||
{DNS_TYPE_SINK, L"SINK"},
|
||||
{DNS_TYPE_OPT, L"OPT"},
|
||||
{DNS_TYPE_UINFO, L"UINFO"},
|
||||
{DNS_TYPE_UID, L"UID"},
|
||||
{DNS_TYPE_GID, L"GID"},
|
||||
{DNS_TYPE_UNSPEC, L"UNSPEC"},
|
||||
{DNS_TYPE_ADDRS, L"ADDRS"},
|
||||
{DNS_TYPE_TKEY, L"TKEY"},
|
||||
{DNS_TYPE_TSIG, L"TSIG"},
|
||||
{DNS_TYPE_IXFR, L"IXFR"},
|
||||
{DNS_TYPE_AXFR, L"AXFR"},
|
||||
{DNS_TYPE_MAILB, L"MAILB"},
|
||||
{DNS_TYPE_MAILA, L"MAILA"},
|
||||
{DNS_TYPE_ALL, L"ALL"},
|
||||
{0, NULL}
|
||||
};
|
||||
|
||||
LPTSTR
|
||||
LPWSTR
|
||||
GetRecordTypeName(WORD wType)
|
||||
{
|
||||
static TCHAR szType[8];
|
||||
static WCHAR szType[8];
|
||||
INT i;
|
||||
|
||||
for (i = 0; ; i++)
|
||||
@@ -122,7 +120,7 @@ GetRecordTypeName(WORD wType)
|
||||
return TypeArray[i].pszRecordName;
|
||||
}
|
||||
|
||||
_stprintf(szType, _T("%hu"), wType);
|
||||
swprintf(szType, L"%hu", wType);
|
||||
|
||||
return szType;
|
||||
}
|
||||
@@ -140,12 +138,12 @@ PCHAR PrintMacAddr(PBYTE Mac)
|
||||
|
||||
|
||||
/* convert time_t to localized string */
|
||||
_Ret_opt_z_ PTSTR timeToStr(_In_ time_t TimeStamp)
|
||||
_Ret_opt_z_ PWSTR timeToStr(_In_ time_t TimeStamp)
|
||||
{
|
||||
struct tm* ptm;
|
||||
SYSTEMTIME SystemTime;
|
||||
INT DateCchSize, TimeCchSize, TotalCchSize, i;
|
||||
PTSTR DateTimeString, psz;
|
||||
PWSTR DateTimeString, psz;
|
||||
|
||||
/* Convert Unix time to SYSTEMTIME */
|
||||
/* localtime_s may be preferred if available */
|
||||
@@ -162,12 +160,12 @@ _Ret_opt_z_ PTSTR timeToStr(_In_ time_t TimeStamp)
|
||||
SystemTime.wSecond = ptm->tm_sec;
|
||||
|
||||
/* Get total size in characters required of buffer */
|
||||
DateCchSize = GetDateFormat(LOCALE_USER_DEFAULT, DATE_LONGDATE, &SystemTime, NULL, NULL, 0);
|
||||
DateCchSize = GetDateFormatW(LOCALE_USER_DEFAULT, DATE_LONGDATE, &SystemTime, NULL, NULL, 0);
|
||||
if (!DateCchSize)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
TimeCchSize = GetTimeFormat(LOCALE_USER_DEFAULT, 0, &SystemTime, NULL, NULL, 0);
|
||||
TimeCchSize = GetTimeFormatW(LOCALE_USER_DEFAULT, 0, &SystemTime, NULL, NULL, 0);
|
||||
if (!TimeCchSize)
|
||||
{
|
||||
return NULL;
|
||||
@@ -176,23 +174,23 @@ _Ret_opt_z_ PTSTR timeToStr(_In_ time_t TimeStamp)
|
||||
TotalCchSize = DateCchSize + TimeCchSize;
|
||||
|
||||
/* Allocate buffer and format datetime string */
|
||||
DateTimeString = (PTSTR)HeapAlloc(ProcessHeap, 0, TotalCchSize * sizeof(TCHAR));
|
||||
DateTimeString = (PTSTR)HeapAlloc(ProcessHeap, 0, TotalCchSize * sizeof(WCHAR));
|
||||
if (!DateTimeString)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Get date string */
|
||||
i = GetDateFormat(LOCALE_USER_DEFAULT, DATE_LONGDATE, &SystemTime, NULL, DateTimeString, TotalCchSize);
|
||||
i = GetDateFormatW(LOCALE_USER_DEFAULT, DATE_LONGDATE, &SystemTime, NULL, DateTimeString, TotalCchSize);
|
||||
if (i)
|
||||
{
|
||||
/* Append space and move pointer */
|
||||
DateTimeString[i - 1] = _T(' ');
|
||||
DateTimeString[i - 1] = L' ';
|
||||
psz = DateTimeString + i;
|
||||
TotalCchSize -= i;
|
||||
|
||||
/* Get time string */
|
||||
if (GetTimeFormat(LOCALE_USER_DEFAULT, 0, &SystemTime, NULL, psz, TotalCchSize))
|
||||
if (GetTimeFormatW(LOCALE_USER_DEFAULT, 0, &SystemTime, NULL, psz, TotalCchSize))
|
||||
{
|
||||
return DateTimeString;
|
||||
}
|
||||
@@ -211,17 +209,17 @@ VOID DoFormatMessage(LONG ErrorCode)
|
||||
if (ErrorCode == 0)
|
||||
ErrorCode = GetLastError();
|
||||
|
||||
if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
|
||||
if (FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER |
|
||||
FORMAT_MESSAGE_FROM_SYSTEM |
|
||||
FORMAT_MESSAGE_IGNORE_INSERTS,
|
||||
NULL,
|
||||
ErrorCode,
|
||||
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), /* Default language */
|
||||
(LPTSTR) &lpMsgBuf,
|
||||
0,
|
||||
NULL))
|
||||
NULL,
|
||||
ErrorCode,
|
||||
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), /* Default language */
|
||||
(LPWSTR)&lpMsgBuf,
|
||||
0,
|
||||
NULL))
|
||||
{
|
||||
_tprintf(_T("%s"), (LPTSTR)lpMsgBuf);
|
||||
ConPuts(StdOut, (LPWSTR)lpMsgBuf);
|
||||
LocalFree(lpMsgBuf);
|
||||
}
|
||||
}
|
||||
@@ -336,17 +334,17 @@ PrintAdapterDescription(LPSTR lpClass)
|
||||
HKEY hClassKey = NULL;
|
||||
LPSTR lpKeyClass = NULL;
|
||||
LPSTR lpConDesc = NULL;
|
||||
LPTSTR lpPath = NULL;
|
||||
TCHAR szPrePath[] = _T("SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002bE10318}\\");
|
||||
LPWSTR lpPath = NULL;
|
||||
WCHAR szPrePath[] = L"SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002bE10318}\\";
|
||||
DWORD dwType;
|
||||
DWORD dwDataSize;
|
||||
INT i;
|
||||
|
||||
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,
|
||||
szPrePath,
|
||||
0,
|
||||
KEY_READ,
|
||||
&hBaseKey) != ERROR_SUCCESS)
|
||||
if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,
|
||||
szPrePath,
|
||||
0,
|
||||
KEY_READ,
|
||||
&hBaseKey) != ERROR_SUCCESS)
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -355,17 +353,17 @@ PrintAdapterDescription(LPSTR lpClass)
|
||||
{
|
||||
DWORD PathSize;
|
||||
LONG Status;
|
||||
TCHAR szName[10];
|
||||
WCHAR szName[10];
|
||||
DWORD NameLen = 9;
|
||||
|
||||
if ((Status = RegEnumKeyEx(hBaseKey,
|
||||
i,
|
||||
szName,
|
||||
&NameLen,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL)) != ERROR_SUCCESS)
|
||||
if ((Status = RegEnumKeyExW(hBaseKey,
|
||||
i,
|
||||
szName,
|
||||
&NameLen,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL)) != ERROR_SUCCESS)
|
||||
{
|
||||
if (Status == ERROR_NO_MORE_ITEMS)
|
||||
{
|
||||
@@ -377,22 +375,22 @@ PrintAdapterDescription(LPSTR lpClass)
|
||||
continue;
|
||||
}
|
||||
|
||||
PathSize = lstrlen(szPrePath) + lstrlen(szName) + 1;
|
||||
lpPath = (LPTSTR)HeapAlloc(ProcessHeap,
|
||||
PathSize = wcslen(szPrePath) + wcslen(szName) + 1;
|
||||
lpPath = (LPWSTR)HeapAlloc(ProcessHeap,
|
||||
0,
|
||||
PathSize * sizeof(TCHAR));
|
||||
PathSize * sizeof(WCHAR));
|
||||
if (lpPath == NULL)
|
||||
goto CLEANUP;
|
||||
|
||||
wsprintf(lpPath, _T("%s%s"), szPrePath, szName);
|
||||
wsprintf(lpPath, L"%s%s", szPrePath, szName);
|
||||
|
||||
//MessageBox(NULL, lpPath, NULL, 0);
|
||||
|
||||
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,
|
||||
lpPath,
|
||||
0,
|
||||
KEY_READ,
|
||||
&hClassKey) != ERROR_SUCCESS)
|
||||
if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,
|
||||
lpPath,
|
||||
0,
|
||||
KEY_READ,
|
||||
&hClassKey) != ERROR_SUCCESS)
|
||||
{
|
||||
goto CLEANUP;
|
||||
}
|
||||
@@ -744,7 +742,7 @@ ShowInfo(
|
||||
pIPAddr = pFixedInfo->DnsServerList.Next;
|
||||
while (pIPAddr)
|
||||
{
|
||||
ConResPrintf(StdOut, IDS_EMPTYLINE, pIPAddr ->IpAddress.String);
|
||||
ConResPrintf(StdOut, IDS_EMPTYLINE, pIPAddr->IpAddress.String);
|
||||
pIPAddr = pIPAddr->Next;
|
||||
}
|
||||
|
||||
@@ -756,15 +754,15 @@ ShowInfo(
|
||||
|
||||
if (pAdapter->DhcpEnabled && strcmp(pAdapter->DhcpServer.IpAddress.String, "255.255.255.255"))
|
||||
{
|
||||
PTSTR DateTimeString;
|
||||
PWSTR DateTimeString;
|
||||
DateTimeString = timeToStr(pAdapter->LeaseObtained);
|
||||
ConResPrintf(StdOut, IDS_LEASEOBTAINED, DateTimeString ? DateTimeString : _T("N/A"));
|
||||
ConResPrintf(StdOut, IDS_LEASEOBTAINED, DateTimeString ? DateTimeString : L"N/A");
|
||||
if (DateTimeString)
|
||||
{
|
||||
HeapFree(ProcessHeap, 0, DateTimeString);
|
||||
}
|
||||
DateTimeString = timeToStr(pAdapter->LeaseExpires);
|
||||
ConResPrintf(StdOut, IDS_LEASEEXPIRES, DateTimeString ? DateTimeString : _T("N/A"));
|
||||
ConResPrintf(StdOut, IDS_LEASEEXPIRES, DateTimeString ? DateTimeString : L"N/A");
|
||||
if (DateTimeString)
|
||||
{
|
||||
HeapFree(ProcessHeap, 0, DateTimeString);
|
||||
@@ -861,7 +859,7 @@ Release(
|
||||
pAdapterInfo = (IP_ADAPTER_INFO *)HeapAlloc(ProcessHeap, 0, adaptOutBufLen);
|
||||
if (pAdapterInfo == NULL)
|
||||
{
|
||||
_tprintf(_T("memory allocation error"));
|
||||
printf("memory allocation error");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -967,7 +965,7 @@ Renew(
|
||||
pAdapterInfo = (IP_ADAPTER_INFO *)HeapAlloc(ProcessHeap, 0, adaptOutBufLen);
|
||||
if (pAdapterInfo == NULL)
|
||||
{
|
||||
_tprintf(_T("memory allocation error"));
|
||||
printf("memory allocation error");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1059,7 +1057,7 @@ VOID
|
||||
RegisterDns(VOID)
|
||||
{
|
||||
/* FIXME */
|
||||
_tprintf(_T("\nSorry /registerdns is not implemented yet\n"));
|
||||
printf("\nSorry /registerdns is not implemented yet\n");
|
||||
}
|
||||
|
||||
static
|
||||
@@ -1230,7 +1228,7 @@ VOID
|
||||
ShowClassId(
|
||||
LPWSTR pszAdapterName)
|
||||
{
|
||||
_tprintf(_T("\nSorry /showclassid adapter is not implemented yet\n"));
|
||||
printf("\nSorry /showclassid adapter is not implemented yet\n");
|
||||
}
|
||||
|
||||
VOID
|
||||
@@ -1260,7 +1258,7 @@ SetClassId(
|
||||
pAdapterInfo = (IP_ADAPTER_INFO *)HeapAlloc(ProcessHeap, 0, adaptOutBufLen);
|
||||
if (pAdapterInfo == NULL)
|
||||
{
|
||||
_tprintf(_T("memory allocation error"));
|
||||
printf("memory allocation error");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1356,41 +1354,41 @@ int wmain(int argc, wchar_t *argv[])
|
||||
ProcessHeap = GetProcessHeap();
|
||||
|
||||
/* Parse command line for options we have been given. */
|
||||
if ((argc > 1) && (argv[1][0]=='/' || argv[1][0]=='-'))
|
||||
if ((argc > 1) && (argv[1][0] == L'/' || argv[1][0] == L'-'))
|
||||
{
|
||||
if (!_tcsicmp(&argv[1][1], _T("?")))
|
||||
if (!_wcsicmp(&argv[1][1], L"?"))
|
||||
{
|
||||
DoUsage = TRUE;
|
||||
}
|
||||
else if (!_tcsnicmp(&argv[1][1], _T("ALL"), _tcslen(&argv[1][1])))
|
||||
else if (!_wcsnicmp(&argv[1][1], L"ALL", wcslen(&argv[1][1])))
|
||||
{
|
||||
DoAll = TRUE;
|
||||
}
|
||||
else if (!_tcsnicmp(&argv[1][1], _T("RELEASE"), _tcslen(&argv[1][1])))
|
||||
else if (!_wcsnicmp(&argv[1][1], L"RELEASE", wcslen(&argv[1][1])))
|
||||
{
|
||||
DoRelease = TRUE;
|
||||
}
|
||||
else if (!_tcsnicmp(&argv[1][1], _T("RENEW"), _tcslen(&argv[1][1])))
|
||||
else if (!_wcsnicmp(&argv[1][1], L"RENEW", wcslen(&argv[1][1])))
|
||||
{
|
||||
DoRenew = TRUE;
|
||||
}
|
||||
else if (!_tcsnicmp(&argv[1][1], _T("FLUSHDNS"), _tcslen(&argv[1][1])))
|
||||
else if (!_wcsnicmp(&argv[1][1], L"FLUSHDNS", wcslen(&argv[1][1])))
|
||||
{
|
||||
DoFlushdns = TRUE;
|
||||
}
|
||||
else if (!_tcsnicmp(&argv[1][1], _T("FLUSHREGISTERDNS"), _tcslen(&argv[1][1])))
|
||||
else if (!_wcsnicmp(&argv[1][1], L"FLUSHREGISTERDNS", wcslen(&argv[1][1])))
|
||||
{
|
||||
DoRegisterdns = TRUE;
|
||||
}
|
||||
else if (!_tcsnicmp(&argv[1][1], _T("DISPLAYDNS"), _tcslen(&argv[1][1])))
|
||||
else if (!_wcsnicmp(&argv[1][1], L"DISPLAYDNS", wcslen(&argv[1][1])))
|
||||
{
|
||||
DoDisplaydns = TRUE;
|
||||
}
|
||||
else if (!_tcsnicmp(&argv[1][1], _T("SHOWCLASSID"), _tcslen(&argv[1][1])))
|
||||
else if (!_wcsnicmp(&argv[1][1], L"SHOWCLASSID", wcslen(&argv[1][1])))
|
||||
{
|
||||
DoShowclassid = TRUE;
|
||||
}
|
||||
else if (!_tcsnicmp(&argv[1][1], _T("SETCLASSID"), _tcslen(&argv[1][1])))
|
||||
else if (!_wcsnicmp(&argv[1][1], L"SETCLASSID", wcslen(&argv[1][1])))
|
||||
{
|
||||
DoSetclassid = TRUE;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user