215 lines
3.1 KiB
C++
215 lines
3.1 KiB
C++
|
//+---------------------------------------------------------------------------
|
||
|
//
|
||
|
// Microsoft Windows
|
||
|
// Copyright (C) Microsoft Corporation, 1992 - 1994.
|
||
|
//
|
||
|
// File: shrinfo.hxx
|
||
|
//
|
||
|
// Contents: Lanman SHARE_INFO encapsulation
|
||
|
//
|
||
|
// History: 21-Feb-95 BruceFo Created
|
||
|
//
|
||
|
//----------------------------------------------------------------------------
|
||
|
|
||
|
#ifndef __SHRINFO_HXX__
|
||
|
#define __SHRINFO_HXX__
|
||
|
|
||
|
//
|
||
|
// Valid flags:
|
||
|
//
|
||
|
|
||
|
#define SHARE_FLAG_ADDED 1
|
||
|
#define SHARE_FLAG_REMOVE 2
|
||
|
#define SHARE_FLAG_MODIFY 3
|
||
|
|
||
|
#include "dlink.hxx"
|
||
|
|
||
|
class CShareInfo : public CDoubleLink
|
||
|
{
|
||
|
DECLARE_SIG;
|
||
|
|
||
|
friend class CSharingPropertyPage; // for m_next
|
||
|
|
||
|
public:
|
||
|
CShareInfo(); // create new info
|
||
|
|
||
|
CShareInfo(IN SHARE_INFO_502* pInfo); // cache existing info
|
||
|
|
||
|
HRESULT
|
||
|
InitInstance(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
~CShareInfo();
|
||
|
|
||
|
NET_API_STATUS
|
||
|
Commit(
|
||
|
IN PWSTR pszMachine
|
||
|
);
|
||
|
|
||
|
//
|
||
|
// "Get" methods
|
||
|
//
|
||
|
|
||
|
SHARE_INFO_502*
|
||
|
GetShareInfo(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
PWSTR
|
||
|
GetNetname(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
GetType(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
PWSTR
|
||
|
GetRemark(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
GetMaxUses(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
PWSTR
|
||
|
GetPassword(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
PWSTR
|
||
|
GetPath(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
PSECURITY_DESCRIPTOR
|
||
|
GetSecurityDescriptor(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
//
|
||
|
// "Set" methods
|
||
|
//
|
||
|
|
||
|
HRESULT
|
||
|
SetNetname(
|
||
|
IN PWSTR pszNetname
|
||
|
);
|
||
|
|
||
|
HRESULT
|
||
|
SetType(
|
||
|
IN DWORD dwType
|
||
|
);
|
||
|
|
||
|
HRESULT
|
||
|
SetRemark(
|
||
|
IN PWSTR pszRemark
|
||
|
);
|
||
|
|
||
|
HRESULT
|
||
|
SetMaxUses(
|
||
|
IN DWORD dwMaxUses
|
||
|
);
|
||
|
|
||
|
HRESULT
|
||
|
SetPassword(
|
||
|
IN PWSTR pszPassword
|
||
|
);
|
||
|
|
||
|
HRESULT
|
||
|
SetPath(
|
||
|
IN PWSTR pszPath
|
||
|
);
|
||
|
|
||
|
// Set... makes a copy of the argument
|
||
|
HRESULT
|
||
|
SetSecurityDescriptor(
|
||
|
IN PSECURITY_DESCRIPTOR pSecDesc
|
||
|
);
|
||
|
|
||
|
// Transfer... takes ownership of "new BYTE[]" memory
|
||
|
HRESULT
|
||
|
TransferSecurityDescriptor(
|
||
|
IN PSECURITY_DESCRIPTOR pSecDesc
|
||
|
);
|
||
|
|
||
|
//
|
||
|
// Other Get/Set methods -- not SHARE_INFO_502 data
|
||
|
//
|
||
|
|
||
|
ULONG
|
||
|
GetFlag(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
SetDirtyFlag(
|
||
|
ULONG flag
|
||
|
);
|
||
|
|
||
|
HRESULT
|
||
|
Copy(
|
||
|
IN SHARE_INFO_502* pInfo
|
||
|
);
|
||
|
|
||
|
#if DBG == 1
|
||
|
VOID
|
||
|
Dump(
|
||
|
IN PWSTR pszCaption
|
||
|
);
|
||
|
#endif // DBG == 1
|
||
|
|
||
|
BOOL
|
||
|
TakeOwn(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
void
|
||
|
SetCacheFlags (
|
||
|
DWORD dwFlags
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
GetCacheFlags (
|
||
|
VOID
|
||
|
) const;
|
||
|
|
||
|
NET_API_STATUS
|
||
|
ReadCacheFlags(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
private:
|
||
|
bool m_bCachingSupported;
|
||
|
NET_API_STATUS
|
||
|
WriteCacheFlags(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
//
|
||
|
// Main object data
|
||
|
//
|
||
|
|
||
|
BOOL m_bOwn;
|
||
|
ULONG m_flags;
|
||
|
SHARE_INFO_502* m_pInfo;
|
||
|
DWORD m_dwCacheFlags;
|
||
|
};
|
||
|
|
||
|
|
||
|
//
|
||
|
// Helper API
|
||
|
//
|
||
|
|
||
|
VOID
|
||
|
DeleteShareInfoList(
|
||
|
IN CShareInfo* pShareInfoList,
|
||
|
IN BOOL fDeleteDummyHeadNode = FALSE
|
||
|
);
|
||
|
|
||
|
#endif // __SHRINFO_HXX__
|