Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1995 Microsoft Corporation
Module Name :
mimeutil.cxx
Abstract:
This module defines MIME utility functions: Initialize and Cleanup of global MimeMap. Also provides function for obtaining the MimeType for given file extension
Author:
Murali R. Krishnan ( MuraliK ) 23-Jan-1995
Environment:
Win32
Project:
TCP Internet services common dll
Functions Exported:
BOOL InitializeMimeMap( VOID) BOOL CleanupMimeMap( VOID)
Revision History:
--*/
/************************************************************
* Include Headers ************************************************************/ # include <tcpdllp.hxx>
# include <tchar.h>
# include "mimemap.hxx"
# include <iistypes.hxx>
# define PSZ_MIME_MAP TEXT( "MimeMap")
PMIME_MAP g_pMimeMap = NULL;
/************************************************************
* Functions ************************************************************/
BOOL InitializeMimeMap( IN LPCTSTR pszRegEntry ) /*++
Creates a new mime map object and loads the registry entries from under this entry from \\MimeMap.
--*/ { BOOL fReturn = FALSE;
DBG_ASSERT( g_pMimeMap == NULL);
g_pMimeMap = new MIME_MAP();
if ( g_pMimeMap != NULL) {
DWORD dwError;
dwError = g_pMimeMap->InitMimeMap( );
if ( dwError == NO_ERROR ) { fReturn = TRUE; } else {
DBGPRINTF((DBG_CONTEXT,"InitMimeMap failed with %d\n", dwError));
SetLastError( dwError); } }
IF_DEBUG( MIME_MAP ) {
DBGPRINTF( ( DBG_CONTEXT, "InitializeMimeMap() from Reg %s. returns %d." " Error = %d\n", PSZ_MIME_MAP, fReturn, GetLastError())); }
return ( fReturn); } // InitializeMimeMap()
BOOL CleanupMimeMap( VOID) { BOOL fReturn = TRUE;
if ( g_pMimeMap != NULL) {
delete g_pMimeMap; g_pMimeMap = NULL; }
return ( fReturn); } // CleanupMimeMap()
BOOL SelectMimeMappingForFileExt( IN const PIIS_SERVICE pInetSvc, IN const TCHAR * pchFilePath, OUT STR * pstrMimeType, // optional
OUT STR * pstrIconFile) // optional
/*++
Locks and obtains the mime type and/or icon file for file based on the file extension.
pTsvcInfo pointer to service's tsvcinfo object pchFilePath pointer to path for the given file pstrMimeType pointer to string to store the mime type on return ( if ! NULL) pstrIconFile pointer to string to store the icon file name on return ( if ! NULL)
Returns: TRUE on success and FALSE if there is any error.
--*/ { BOOL fReturn = TRUE;
if ( pstrIconFile != NULL || pstrMimeType != NULL) {
PMIME_MAP pMm; PCMIME_MAP_ENTRY pMmeMatch;
DBG_ASSERT( pInetSvc); pMm = pInetSvc->QueryMimeMap();
DBG_ASSERT( pMm != NULL);
pMmeMatch = pMm->LookupMimeEntryForFileExt( pchFilePath); DBG_ASSERT( pMmeMatch != NULL);
if ( pstrIconFile != NULL) {
fReturn = fReturn && pstrIconFile->Copy( pMmeMatch->QueryIconFile()); }
if ( pstrMimeType != NULL) {
fReturn = fReturn && pstrMimeType->Copy( pMmeMatch->QueryMimeType()); } }
return ( fReturn); } // SelectMimeMappingForFileExt()
/************************ End of File ***********************/
|