windows-nt/Source/XPSP1/NT/shell/ext/netplwiz/stdafx.h
2020-09-26 16:20:57 +08:00

155 lines
4 KiB
C

#ifndef STDAFX_H_INCLUDED
#define STDAFX_H_INCLUDED
#undef ATL_MIN_CRT
#include "nt.h"
#include "ntrtl.h"
#include "nturtl.h"
#include "ntlsa.h"
#define SECURITY_WIN32
#define SECURITY_KERBEROS
#include <security.h>
#include <windows.h> // basic windows functionality
#include <windowsx.h>
#include <commctrl.h> // ImageList, ListView
#include <comctrlp.h>
#include <shfusion.h>
#include <string.h> // string functions
#include <crtdbg.h> // _ASSERT macro
#include <objbase.h>
#include <shconv.h>
#include <wininet.h>
#include <lm.h>
#include <validc.h> // specifies valid characters for user names, etc.
#include <wincrui.h> // credui
#include <shlwapi.h>
#include <shlwapip.h>
#include <shellapi.h>
#include <shlapip.h>
#include <shlobj.h> // Needed by dsclient.h
#include <shlobjp.h>
#include <shlguid.h>
#include <shlguidp.h>
#include <ieguidp.h>
#include <shellp.h>
#include <ccstock.h>
#include <dpa.h>
#include <varutil.h>
#include <cowsite.h>
#include <objsafe.h>
#include <cobjsafe.h>
// our concept of what domain, password and user names should be
#define MAX_COMPUTERNAME LM20_CNLEN
#define MAX_USER LM20_UNLEN
#define MAX_UPN UNLEN
#define MAX_PASSWORD PWLEN
#define MAX_DOMAIN MAX_PATH
#define MAX_WORKGROUP LM20_DNLEN
#define MAX_GROUP GNLEN
// MAX_DOMAINUSER can hold: <domain>/<username> or <upn>
#define MAX_DOMAINUSER MAX(MAX_UPN, MAX_USER + MAX_DOMAIN + 1)
// our headers
#include "dialog.h"
#include "helpids.h"
#include "misc.h"
#include "cfdefs.h"
#include "dspsprt.h"
#include "resource.h"
#include "userinfo.h"
#include "dialog.h"
#include "data.h"
// global state
EXTERN_C HINSTANCE g_hinst;
extern LONG g_cLocks;
// resource mapper object - used for wizard chaining
STDAPI CResourceMap_Initialize(LPCWSTR pszURL, IResourceMap **pprm);
// constructors for COM objects
STDAPI CPublishingWizard_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppunk, LPCOBJECTINFO poi);
STDAPI CUserPropertyPages_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppunk, LPCOBJECTINFO poi);
STDAPI CUserSidDataObject_CreateInstance(PSID psid, IDataObject **ppdo);
STDAPI CPassportWizard_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppunk, LPCOBJECTINFO poi);
STDAPI CPassportClientServices_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppunk, LPCOBJECTINFO poi);
extern const CLSID CLISD_PublishDropTarget;
STDAPI CPublishDropTarget_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppunk, LPCOBJECTINFO poi);
// template for defining wizard pages
typedef struct
{
LPCWSTR idPage;
DLGPROC pDlgProc;
LPCWSTR pHeading;
LPCWSTR pSubHeading;
DWORD dwFlags;
} WIZPAGE;
typedef struct
{
LPWSTR pszUser;
INT cchUser;
LPWSTR pszDomain;
INT cchDomain;
LPWSTR pszPassword;
INT cchPassword;
} CREDINFO, * LPCREDINFO;
HRESULT JoinDomain(HWND hwnd, BOOL fDomain, LPCWSTR pDomain, CREDINFO* pci, BOOL *pfReboot);
VOID SetAutoLogon(LPCWSTR pszUserName, LPCWSTR pszPassword);
VOID SetDefAccount(LPCWSTR pszUserName, LPCWSTR pszDomain);
// for the users.cpl (shared between usercpl.cpp & userlist.cpp)
// All "add user to list" operations are done on the main UI thread - the
// filler thread posts this message to add a user
#define WM_ADDUSERTOLIST (WM_USER + 101)
// (LPARAM) CUserInfo* - the user to add to the listview
// (WPARAM) BOOL - select this user (should always be 0 for now)
// Wizard text-related constants
#define MAX_CAPTION 256 // Maximum size of a caption in the Wizard
#define MAX_STATIC 1024 // Maximum size of static text in the Wizard
// Wizard error return value
#define RETCODE_CANCEL 0xffffffff
// keep the debug libraries working...
#ifdef DBG
#if !defined (DEBUG)
#define DEBUG
#endif
#else
#undef DEBUG
#endif
STDAPI_(void) DllAddRef(void);
STDAPI_(void) DllRelease(void);
#define RECTWIDTH(rc) ((rc).right - (rc).left)
#define RECTHEIGHT(rc) ((rc).bottom - (rc).top)
#endif // !STDAFX_H_INCLUDED