IFtpProviderConstruct Interface

Provides an interface for passing configuration settings to a provider.

Syntax

interface IFtpProviderConstruct : IUknown 

Methods

The following table lists the methods exposed by the IFtpRoleProvider interface.

Name Definition
IFtpProviderConstruct::Construct Method Retrieves an array of key/value pairs from an FTP provider's configuration settings in the IIS ApplicationHost.config file.

Remarks

You can specify parameters for an FTP provider in the IIS ApplicationHost.config file by adding an <activation> collection, which may contain a series of <providerData> elements that list additional settings for custom FTP providers. Each <providerData> element is paired with an entry in the <providerDefinitions> collection, and contains a series of key/value pairs that contain information that is specific to each provider.

The following configuration excerpt illustrates a custom FTP provider entry in the ApplicationHost.config file and its related information.

<system.ftpServer> 
   <providerDefinitions> 
      <add name="FtpDemo" 
         clsid="FtpDemo.DemoProvider" /> 
      <activation> 
         <providerData name="FtpDemo"> 
            <add key="one" value="1" /> 
            <add key="two" value="2" /> 
         </providerData> 
      </activation> 
   </providerDefinitions> 
</system.ftpServer> 

Example

The following code example iterates through the array of configuration settings and sends the key/value pairs to the debug stream.

public: 
   STDMETHOD(Construct)(SAFEARRAY * configurationEntries) 
   { 
      CONFIGURATION_ENTRY * pArray; 
      HRESULT hr = S_OK; 
      LONG lLbound = 0; 
      LONG lUbound = 0; 
 
      OutputDebugString(L"IFtpProviderConstruct::Construct\n"); 
 
      // Retrieve the upper and lower bounds for the configuration array. 
      SafeArrayGetLBound( configurationEntries, 1, &lLbound ); 
      SafeArrayGetUBound( configurationEntries, 1, &lUbound ); 
 
      // Retrieve a pointer to the array of configuration settings. 
      hr = SafeArrayAccessData(configurationEntries, (void**)&pArray); 
      // Return an error if a failure occurs. 
      if (FAILED(hr)) 
      { 
         return hr; 
      } 
 
      // Loop through the array of configuration setttings and 
      // output the key/value pairs to the debug channel. 
      for(LONG Index = lLbound; Index <= lUbound; Index ++) 
      { 
         OutputDebugString(pArray[Index].bstrKey); 
         OutputDebugString(pArray[Index].bstrValue); 
      } 
 
      // Release the pointer to the array of configuration settings. 
      hr = SafeArrayUnaccessData(configurationEntries); 
      // Return an error if a failure occurs. 
      if (FAILED(hr)) 
      { 
         return hr; 
      } 
 
      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