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.
 
 
 
 
 
 

145 lines
4.6 KiB

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1997-2002.
//
// File: cmutils.h
//
// Contents:
//
//----------------------------------------------------------------------------
#ifndef __CMUTILS_H
#define __CMUTILS_H
#include "cookie.h"
typedef CArray<CCertMgrCookie*, CCertMgrCookie*> CCookiePtrArray;
// Get subject or issuer name from a certificate context
CString GetNameString (PCCERT_CONTEXT pCertContext, DWORD dwFlag);
// Convert win32 error code to a text message and display
void DisplaySystemError (HWND hParent, DWORD dwErr);
CString GetSystemMessage (DWORD dwErr);
// Convert an OID to a displayable name
bool MyGetOIDInfo (CString & string, LPCSTR pszObjId);
// The certificate has File Encryption key usage
bool CertHasEFSKeyUsage (PCCERT_CONTEXT pCertContext);
HRESULT FormatDate (
FILETIME utcDateTime,
CString & pszDateTime,
DWORD dwDateFlags = 0,
bool bGetTime = false);
HRESULT ConvertNameBlobToString(CERT_NAME_BLOB nameBlob, CString & pszName);
bool IsWindowsNT ();
LRESULT RegDelnode (HKEY hKeyRoot, CString pszSubKey);
HRESULT DisplayCertificateCountByStore (LPCONSOLE pConsole, CCertStore* pCertStore, bool bIsGPE = false);
// Help File for F1 and ? help
CString GetF1HelpFilename();
#ifndef szOID_EFS_RECOVERY
#define szOID_EFS_RECOVERY "1.3.6.1.4.1.311.10.3.4.1"
#endif
#define IID_PPV_ARG(Type, Expr) IID_##Type, \
reinterpret_cast<void**>(static_cast<Type **>(Expr))
extern LPCWSTR CM_HELP_TOPIC;
extern LPCWSTR CM_HELP_FILE;
extern LPCWSTR CM_LINKED_HELP_FILE;
extern LPCWSTR PKP_LINKED_HELP_FILE;
extern LPCWSTR PKP_HELP_FILE;
extern LPCWSTR PKP_HELP_TOPIC;
extern LPCWSTR SAFER_WINDOWS_HELP_FILE;
extern LPCWSTR SAFER_WINDOWS_LINKED_HELP_FILE;
extern LPCWSTR SAFER_HELP_TOPIC;
extern LPCWSTR CM_CONTEXT_HELP;
extern LPCWSTR WINDOWS_HELP;
extern LPCWSTR EFS_LINKED_HELP_FILE;
extern LPCWSTR EFS_HELP_TOPIC;
HRESULT RenewCertificate (
CCertificate* pCert,
bool bNewKey,
const CString& machineName,
DWORD dwLocation,
const CString& managedComputer,
const CString& managedService,
HWND hwndParent,
LPCONSOLE pConsole,
LPDATAOBJECT pDataObject);
int LocaleStrCmp(PCWSTR ptsz1, PCWSTR ptsz2); // calls CompareString () API.
#define STR_BLOBCOUNT L"BlobCount"
#define STR_BLOB L"Blob"
#define STR_BLOB0 L"Blob0"
#define STR_BLOBLENGTH L"BlobLength"
#define STR_WQL L"WQL"
#define STR_SELECT_STATEMENT L"SELECT * FROM RSOP_RegistryPolicySetting"
#define STR_PROP_VALUENAME L"valueName"
#define STR_PROP_REGISTRYKEY L"registryKey"
#define STR_PROP_VALUE L"value"
#define STR_PROP_PRECEDENCE L"precedence"
#define STR_PROP_GPOID L"GPOID"
#define STR_REGKEY_CERTIFICATES L"\\Certificates"
#define STR_REGKEY_CTLS L"\\CTLs"
#define STR_REGKEY_CRLS L"\\CRLs"
#define DEBUGKEY L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\AdminDebug\\CertMgr"
#define SAFER_CODEID_KEY \
SAFER_HKLM_REGBASE L"\\" SAFER_CODEIDS_REGSUBKEY
// Registry path to the trusted publisher store
#define CERT_TRUST_PUB_SAFER_GROUP_POLICY_TRUSTED_PUBLISHER_STORE_REGPATH \
CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH L"\\TrustedPublisher"
// Registry path to the disallowed store
#define CERT_TRUST_PUB_SAFER_GROUP_POLICY_DISALLOWED_STORE_REGPATH \
CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH L"\\Disallowed"
// Registry path to the EFS settings
#define EFS_SETTINGS_REGPATH L"Software\\Policies\\Microsoft\\Windows NT\\CurrentVersion\\EFS"
// Registry value for EFS settings
#define EFS_SETTINGS_REGVALUE L"EfsConfiguration"
// Enabling themes
#ifdef UNICODE
#define PROPSHEETPAGE_V3 PROPSHEETPAGEW_V3
#else
#define PROPSHEETPAGE_V3 PROPSHEETPAGEA_V3
#endif
HPROPSHEETPAGE MyCreatePropertySheetPage(AFX_OLDPROPSHEETPAGE* psp);
class CThemeContextActivator
{
public:
CThemeContextActivator() : m_ulActivationCookie(0)
{ SHActivateContext (&m_ulActivationCookie); }
~CThemeContextActivator()
{ SHDeactivateContext (m_ulActivationCookie); }
private:
ULONG_PTR m_ulActivationCookie;
};
void CheckDomainVersion ();
VOID DataToHex (PBYTE pSrc, CString & dest, int cb, bool bIncludeSpaces = true);
typedef CTypedPtrList<CPtrList, CERT_CONTEXT*> CERT_CONTEXT_LIST;
BOOL GetCertificateChain (CERT_CONTEXT* pCertContext, CERT_CONTEXT_LIST& certChainList);
#endif