Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

170 lines
4.2 KiB

/********************************************************************
Copyright (c) 1999 Microsoft Corporation
Module Name:
csmutest.cpp
Abstract:
Content Store manager unit test
Revision History:
DerekM created 07/14/99
********************************************************************/
#include <atlbase.h>
extern CComModule _Module;
#include <mbstring.h>
#include <ContentStoreMgr.h>
#include <stdio.h>
// **************************************************************************
inline LPVOID MyAlloc(DWORD cb)
{
return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, cb);
}
// **************************************************************************
inline LPVOID MyReAlloc(LPVOID pv, DWORD cb)
{
return HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, pv, cb);
}
// **************************************************************************
inline BOOL MyFree(LPVOID pv)
{
return HeapFree(GetProcessHeap(), 0, pv);
}
// **************************************************************************
void ShowUsage(void)
{
printf("Usage:\n");
printf("wcsutest <command> <command parameters>\n");
printf("\n\nCommands:\n");
printf(" ADD: adds URLs to the store\n");
printf(" Usage:\n");
printf(" wcsutest ADD <Vendor ID> <Vendor Name> <URL>\n");
printf("\n REMOVE: removes URLs from the store\n");
printf(" Usage:\n");
printf(" wcsutest REMOVE <Vendor ID> <Vendor Name> [URL]\n");
printf(" Note that 'URL' is optional. If it is not present, all URLs for the specified\n");
printf(" for the specified vendor will be deleted.\n");
printf("\n ADDFILE: adds URLs listed in the specified file to the store\n");
printf(" Usage:\n");
printf(" wcsutest ADD <Vendor ID> <Vendor Name> <URL File>\n");
printf("\n REMOVEFILE: removes URLs listed in the specfied file from the store\n");
printf(" Usage:\n");
printf(" wcsutest REMOVE <Vendor ID> <Vendor Name> [URL File]\n");
printf(" Note that 'URL File' is optional. If it is not present, all URLs for the specified\n");
printf(" for the specified vendor will be deleted.\n");
printf("\n CHECKTRUST: checks if a URL is in the store\n");
printf(" Usage:\n");
printf(" wcsutest CHECKTRUST <URL>\n");
printf("\n");
}
// **************************************************************************
int __cdecl wmain(int argc, WCHAR **argv, WCHAR **envp)
{
HRESULT hr;
LPCWSTR wszURL = L"";
LPCWSTR wszVendorID = L"";
LPCWSTR wszVendorName = L"";
CPCHContentStore cs( true );
switch(argc)
{
case 5: wszVendorName = argv[4];
case 4: wszVendorID = argv[3];
case 3: wszURL = argv[2]; break;
default:
ShowUsage();
exit( 10 );
}
if(SUCCEEDED(hr = cs.Acquire()))
{
if(!_wcsicmp( argv[1], L"ADD")) // we're adding URLs
{
if(argc != 5)
{
ShowUsage();
exit(10);
}
if(FAILED(hr = cs.Add( wszURL, wszVendorID, wszVendorName )))
{
wprintf( L"Unable to register URLs: 0x%08x\n", hr );
}
else
{
wprintf( L"Successfully added URLs\n" );
}
}
else if(!_wcsicmp( argv[1], L"REMOVE" )) // we're deleteing URLs
{
if(argc != 5)
{
ShowUsage();
exit(10);
}
if(FAILED(hr = cs.Remove( wszURL, wszVendorID, wszVendorName )))
{
wprintf( L"Unable to remove URLs: 0x%08x\n", hr );
}
else
{
wprintf( L"Successfully removed URL:s\n" );
}
}
else if (!_wcsicmp( argv[1], L"CHECKTRUST")) // we're validating a URL
{
bool fTrusted;
if(argc != 3)
{
ShowUsage();
exit(10);
}
if(FAILED(hr = cs.IsTrusted( wszURL, fTrusted )))
{
wprintf( L"Unable to check if URL is trusted: 0x%08x\n", hr );
}
else
{
if(fTrusted)
{
wprintf( L"%s is trusted!\n", wszURL );
}
else
{
wprintf( L"%s is NOT trusted!\n", wszURL );
}
}
}
else // nothing valid
{
ShowUsage();
exit(10);
}
if(SUCCEEDED(hr)) cs.Release( true );
}
return SUCCEEDED(hr) ? 0 : 5;
}