IFtpHomeDirectoryProvider Interface (Native)

IIS 7.0
 

Provides an interface to implement returning the physical path for a user's home directory.

interface IFtpHomeDirectoryProvider : IUknown

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 Technical Preview

Product

  • IIS 7.0, IIS 7.5, IIS 8.0, IIS 8.5, IIS 10.0

Reference

ftpext.tlb

Show: