41 lines
1.5 KiB
C
41 lines
1.5 KiB
C
|
#define NPTF_VALIDATE 0x00000001 // => validate the URL
|
||
|
#define NPTF_ALLOWWEBFOLDERS 0x00000002 // => allow binding to Web Folder locations
|
||
|
#define NPTF_SILENT 0x00000004 // => silent binding - no errors
|
||
|
|
||
|
class CNetworkPlace
|
||
|
{
|
||
|
public:
|
||
|
CNetworkPlace();
|
||
|
~CNetworkPlace();
|
||
|
|
||
|
// INetworkPlace
|
||
|
HRESULT SetTarget(HWND hwnd, LPCWSTR pszTarget, DWORD dwFlags);
|
||
|
HRESULT SetLoginInfo(LPCWSTR pszUser, LPCWSTR pszPassword);
|
||
|
HRESULT SetName(HWND hwnd, LPCWSTR pszName);
|
||
|
HRESULT SetDescription(LPCWSTR pszDescription);
|
||
|
|
||
|
HRESULT GetTarget(LPWSTR pszBuffer, int cchBuffer)
|
||
|
{ StrCpyN(pszBuffer, _szTarget, cchBuffer); return S_OK; }
|
||
|
|
||
|
HRESULT GetName(LPWSTR pszBuffer, int cchBuffer);
|
||
|
HRESULT GetIDList(HWND hwnd, LPITEMIDLIST *ppidl);
|
||
|
HRESULT GetObject(HWND hwnd, REFIID riid, void **ppv);
|
||
|
HRESULT CreatePlace(HWND hwnd, BOOL fOpen);
|
||
|
|
||
|
private:
|
||
|
void _InvalidateCache();
|
||
|
HRESULT _IDListFromTarget(HWND hwnd);
|
||
|
HRESULT _TryWebFolders(HWND hwnd);
|
||
|
BOOL _IsPlaceTaken(LPCTSTR pszName, LPTSTR pszPath);
|
||
|
HRESULT _GetTargetPath(LPCITEMIDLIST pidl, LPTSTR pszPath, int cchPath);
|
||
|
|
||
|
LPITEMIDLIST _pidl;
|
||
|
TCHAR _szTarget[INTERNET_MAX_URL_LENGTH];
|
||
|
TCHAR _szName[MAX_PATH];
|
||
|
TCHAR _szDescription[MAX_PATH];
|
||
|
|
||
|
BOOL _fSupportWebFolders; // apply hacks
|
||
|
BOOL _fIsWebFolder; // special case certain operations for Web Folders (office compat)
|
||
|
BOOL _fDeleteWebFolder; // if this is set then we must delete the Web Folder
|
||
|
};
|