The ICcmAlternateDownloadProvider::DownloadContent method, in Configuration Manager, instructs the provider to download content.

	HRESULT DownloadContent(
			LPCWSTR szContentId, 
			LPCWSTR szContentVersion, 
			LPCWSTR szRemotePath, 
			LPCWSTR szLocalPath, 
			LPCWSTR szNotifyEndpoint, 
			LPCWSTR szNotifyData, 
			CCM_DTS_PRIORITY Priority, 
			DWORD dwTimeoutSeconds, 
			DWORD dwChunkSize, 
			DWORD dwFlags, 
			LPCWSTR szLocationOptions, 
			LPCWSTR szFileManifest, 
			LPCWSTR szOwnerSID, 
			BOOL bDeleteJobOnError, 
			LPCWSTR szProviderData, 
			LPCWSTR szPackageData, 
			GUID *pJobID



Data type: LPCWSTRQualifiers: [in]The content/package ID to download.

Data type: LPCWSTRQualifiers: [in]The content/package version to download.

Data type: LPCWSTRQualifiers: [in]A hint on where to download the content. The provider is free to ignore this and download using its own mechanisms.

Data type: LPCWSTRQualifiers: [in]The directory to which the content should be downloaded. This directory should already exist on this call, and the provider should not change any ACLs on the directory itself for any reason.

Data type: LPCWSTRQualifiers: [in]Endpoint to be used for notifying Content Transfer Manager. This should be passed verbatim into calls to SendNotify*ToCTM.

Data type: LPCWSTRQualifiers: [in]Notification data specified by Content Transfer Manager This should be passed verbatim into calls to SendNotify*ToCTM

Data type: CCM_DTS_PRIORITYQualifiers: [in]The priority for the job. See notes on CCM_DTS_PRIORITY.

Data type: DWORDQualifiers: [in]The timeout for the job. If the timeout is reached, the job should report an error through SendNotifyErrorToCTM.

Data type: DWORDQualifiers: [in]The chunk size to use for notification. If progress notifications have been requested, Content Transfer Manager should be notified every dwChunkSize bytes.

Data type: DWORDQualifiers: [in]Flags for the job. This corresponds to an OR of CCM_DTS_FLAG values.

Data type: LPCWSTRQualifiers: [in]Reserved. Alternate providers should ignore this.

Data type: LPCWSTRQualifiers: [in, unique]Reserved. Alternate providers should ignore this.

Data type: LPCWSTRQualifiers: [in]The user context in which the download should be performed.

Data type: BOOLQualifiers: [in]Indicates whether or not a job should immediately fail due to a transient error condition. If this is false, then transient errors should simply cause the provider to internally retry unless the job times out or is instructed otherwise by Content Transfer Manager.

Data type: LPCWSTRQualifiers: [in]The provider-specific data specified in the CCM_DownloadProvider policy. This will be an empty string, if data was not specified.

Data type: LPCWSTRQualifiers: [in]The package-specific data specified server-side, wrapped in a <Data> XML element. This will be an empty string if data was not specified.

Data type: GUIDQualifiers: [out]The job ID which should be used for reference on subsequent calls.

Return Values

An HRESULT code. Possible values include, but are not limited to, the following:


Success implies that discovery was triggered successfully. All other return values indicate failure.


If the provider cannot handle the request for any reason, it should return an error.


Runtime Requirements

Development Requirements