// File: iSysInfo.h #ifndef _ISYSINFO_H_ #define _ISYSINFO_H_ class USER_DATA_LIST; class CNmSysInfo : public DllRefCount, public INmSysInfo2, public CConnectionPointContainer { private: static CNmSysInfo* m_pSysInfo; USER_DATA_LIST m_UserData; BSTR m_bstrUserName; public: CNmSysInfo(); ~CNmSysInfo(); BSTR GetUserName() { return m_bstrUserName; } // IUnknown methods ULONG STDMETHODCALLTYPE AddRef(void); ULONG STDMETHODCALLTYPE Release(void); HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, PVOID *ppvObj); // INmSysInfo methods HRESULT STDMETHODCALLTYPE IsInstalled(void); HRESULT STDMETHODCALLTYPE GetProperty(NM_SYSPROP uProp, BSTR *pbstrProp); HRESULT STDMETHODCALLTYPE SetProperty(NM_SYSPROP uProp, BSTR bstrName); HRESULT STDMETHODCALLTYPE GetUserData(REFGUID rguid, BYTE **ppb, ULONG *pcb); HRESULT STDMETHODCALLTYPE SetUserData(REFGUID rguid, BYTE *pb, ULONG cb); HRESULT STDMETHODCALLTYPE GetNmApp(REFGUID rguid, BSTR *pbstrApplication, BSTR *pbstrCommandLine, BSTR *pbstrDirectory); HRESULT STDMETHODCALLTYPE SetNmApp(REFGUID rguid, BSTR bstrApplication, BSTR bstrCommandLine, BSTR bstrDirectory); HRESULT STDMETHODCALLTYPE GetNmchCaps(ULONG *pchCaps); HRESULT STDMETHODCALLTYPE GetLaunchInfo(INmConference **ppConference, INmMember **pMember); // INmSysInfo2 methods HRESULT STDMETHODCALLTYPE GetOption(NM_SYSOPT uOption, ULONG * plOption); HRESULT STDMETHODCALLTYPE SetOption(NM_SYSOPT uOption, ULONG lOption); HRESULT STDMETHODCALLTYPE ProcessSecurityData(DWORD dwTaskCode, DWORD_PTR dwParam1, DWORD_PTR dwParam2, DWORD * pdwResult); HRESULT STDMETHODCALLTYPE GkLogon(BSTR bstrAddr, BSTR bstrAliasID, BSTR bstrAliasE164); HRESULT STDMETHODCALLTYPE GkLogoff(void); HRESULT STDMETHODCALLTYPE GkState(NM_GK_STATE * pgkState); // Internal Methods HRESULT STDMETHODCALLTYPE GetUserDataList(ULONG * pnRecords, GCCUserData *** pppUserData); static VOID CALLBACK RasNotify(DWORD dwRasEvent, HRESULT hReason); }; #endif /* _ISysInfo_H_ */