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.
|
|
/*++ BUILD Version: 0000 // Increment this if a change has global effects
Copyright (c) 2000-2002 Microsoft Corporation
Module Name:
mmcmgmt.h
Abstract:
Header file for MMC manipulation
Author:
Xiaohai Zhang (xzhang) 22-March-2000
Revision History:
--*/
#ifndef __MMCMGMT_H__
#define __MMCMGMT_H__
#include "tapi.h"
#include "tapimmc.h"
#include "util.h"
typedef struct _USERNAME_TUPLE { LPTSTR pDomainUserNames;
LPTSTR pFriendlyUserNames;
} USERNAME_TUPLE, *LPUSERNAME_TUPLE;
typedef LONG (WINAPI * PMMCGETDEVICEFLAGS)( HMMCAPP hMmcApp, BOOL bLine, DWORD dwProviderID, DWORD dwPermanentDeviceID, DWORD * pdwFlags, DWORD * pdwDeviceID );
class CMMCManagement { public: CMMCManagement () { HMODULE hTapi32; m_pDeviceInfoList = NULL; m_pUserTuple = NULL; m_pProviderList = NULL; m_pProviderName = NULL; m_hMmc = NULL; m_bMarkedBusy = FALSE;
hTapi32 = LoadLibrary (TEXT("tapi32.dll")); if (hTapi32) { m_pFuncGetDeviceFlags = (PMMCGETDEVICEFLAGS)GetProcAddress ( hTapi32, "MMCGetDeviceFlags" ); FreeLibrary (hTapi32); } else { m_pFuncGetDeviceFlags = NULL; } } ~CMMCManagement () { FreeMMCData (); }
HRESULT GetMMCData (); HRESULT RemoveLinesForUser (LPTSTR szDomainUser); HRESULT IsValidPID (DWORD dwPermanentID); HRESULT IsValidAddress (LPTSTR szAddr); HRESULT AddLinePIDForUser ( DWORD dwPermanentID, LPTSTR szDomainUser, LPTSTR szFriendlyName ); HRESULT AddLineAddrForUser ( LPTSTR szAddr, LPTSTR szDomainUser, LPTSTR szFriendlyName ); HRESULT RemoveLinePIDForUser ( DWORD dwPermanentID, LPTSTR szDomainUser ); HRESULT RemoveLineAddrForUser ( LPTSTR szAddr, LPTSTR szDomainUser );
HRESULT DisplayMMCData (); HRESULT FreeMMCData ();
private: HRESULT FindEntryFromAddr (LPTSTR szAddr, DWORD * pdwIndex); HRESULT FindEntryFromPID (DWORD dwPID, DWORD * pdwIndex); HRESULT FindEntriesForUser ( LPTSTR szDomainUser, LPDWORD * padwIndex, DWORD * pdwNumEntries ); HRESULT AddEntryForUser ( DWORD dwIndex, LPTSTR szDomainUser, LPTSTR szFriendlyName ); HRESULT RemoveEntryForUser ( DWORD dwIndex, LPTSTR szDomainUser ); HRESULT WriteMMCEntry (DWORD dwIndex); BOOL IsDeviceLocalOnly (DWORD dwProviderID, DWORD dwDeviceID);
private: HMMCAPP m_hMmc; BOOL m_bMarkedBusy; DEVICEINFOLIST * m_pDeviceInfoList; USERNAME_TUPLE * m_pUserTuple; LINEPROVIDERLIST * m_pProviderList; LPTSTR * m_pProviderName;
PMMCGETDEVICEFLAGS m_pFuncGetDeviceFlags; };
#endif // mmcmgmt.h
|