IFtpHomeDirectoryProvider Interface (Native)
Provides an interface to implement returning the physical path for a user's home directory.
Syntax
interface IFtpHomeDirectoryProvider : IUknown
Methods
The following table lists the methods exposed by the IFtpHomeDirectoryProvider
interface.
Name | Definition |
---|---|
IFtpHomeDirectoryProvider::GetUserHomeDirectoryData Method | Returns the physical path of the home directory for a user. |
Example
The following code example illustrates using the IFtpHomeDirectoryProvider
interface to create a custom home directory module for the FTP service that returns a specific home directory.
public:
STDMETHOD(GetUserHomeDirectoryData)(
LPWSTR pszSessionId,
LPWSTR pszSiteName,
LPWSTR pszUserName,
LPWSTR * ppszHomeDirectoryData)
{
// Note: You would add your own custom logic here.
HRESULT hr = S_OK;
WCHAR wszPath[MAX_PATH] = L"";
// Calculate the user's home directory based on their user name.
hr = StringCchPrintf(wszPath,_countof(wszPath),
L"\\\\?\\C:\\ftpusers\\%s",pszUserName);
// Return an error if a failure occurs.
if (FAILED(hr))
{
return hr;
}
// Allocate a block of memory for the user's home directory.
LPWSTR wszHomeDirectoryData =
(LPWSTR)CoTaskMemAlloc(_countof(wszPath) * sizeof(WCHAR));
// Return an error if a failure occurs.
if (wszHomeDirectoryData == NULL)
{
return E_OUTOFMEMORY;
}
// Copy the user's home directory into the memory block.
hr = StringCchCopy(wszHomeDirectoryData,
_countof(wszPath), wszPath);
// Return an error if a failure occurs.
if (FAILED(hr))
{
return hr;
}
// Return the user's home directory.
(*ppszHomeDirectoryData) = wszHomeDirectoryData;
return S_OK;
}
Requirements
Type | Description |
---|---|
Client | - IIS 7.5 on Windows 7 - IIS 8.0 on Windows 8 - IIS 10.0 on Windows 10 |
Server | - IIS 7.5 on Windows Server 2008 R2 - IIS 8.0 on Windows Server 2012 - IIS 8.5 on Windows Server 2012 R2 - IIS 10.0 on Windows Server 2016 |
Product | - IIS 7.0, IIS 7.5, IIS 8.0, IIS 8.5, IIS 10.0 |
Reference | ftpext.tlb |