home *** CD-ROM | disk | FTP | other *** search
- /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- *
- * The contents of this file are subject to the Netscape Public License
- * Version 1.0 (the "NPL"); you may not use this file except in
- * compliance with the NPL. You may obtain a copy of the NPL at
- * http://www.mozilla.org/NPL/
- *
- * Software distributed under the NPL is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
- * for the specific language governing rights and limitations under the
- * NPL.
- *
- * The Initial Developer of this code under the NPL is Netscape
- * Communications Corporation. Portions created by Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All Rights
- * Reserved.
- */
-
- #include "stdafx.h"
-
- #include "presentm.h"
-
- #include "strmdata.h"
- #include "olectc.h"
- #include "ddectc.h"
- #include "helper.h"
-
- // All our registered ContentTypeConverters
- extern "C" BOOL WPM_RegisterContentTypeConverter(char *pFormatIn,
- FO_Present_Types iFormatOut, void *vpDataObject,
- NET_Converter *pConverterFunc, BOOL bAutomated) {
-
- NET_RegContentTypeConverter (pFormatIn,iFormatOut,vpDataObject, pConverterFunc,
- bAutomated);
- return(TRUE);
- }
-
- CStreamData *WPM_UnRegisterContentTypeConverter(const char *pServer,
- const char *pMimeType, FO_Present_Types iFormatOut) {
- // Purpose: Remove a content type converter from the list of registered
- // types.
- // Arguments: pServer The name of the server.
- // pMimeType The mime type the server should be
- // registered to handle.
- // iFormatOut The format out that the server is registered
- // to handle.
- // Returns: CStreamData * The data passed in via RegisterContentTypeConverter,
- // so the application can free it. NULL on failure.
- // Comments: This function has intimate knowledge of the CStreamData
- // class and it's heirs. This is so that it can correctly
- // find the server in the registration list.
- // Only automated converters can be unregistered.
- // Revision History:
- // 01-08-94 created GAB
- //
-
- // Can't handle any caching formats, shouldn't ever be registered!
- if((iFormatOut & FO_CACHE_ONLY) || (iFormatOut & FO_ONLY_FROM_CACHE)) {
- ASSERT(0);
- return(NULL);
- }
-
-
- XP_List* pList = NET_GetRegConverterList(iFormatOut);
- void *objPtr = NULL;
- CStreamData *pAutoStream = (CStreamData *)NET_GETDataObject(pList, (char *)pMimeType, &objPtr);
- if(pAutoStream) {
- switch(pAutoStream->GetType()) {
- case CStreamData::m_DDE: {
- CDDEStreamData *pDDEStream = (CDDEStreamData *)pAutoStream;
-
- // Compare the server names.
- // This will not be a case sensitive thing, since DDE isn't
- // case sensitive.
- if(0 == pDDEStream->m_csServerName.CompareNoCase(pServer)){
- // This is the one. Take it out.
- XP_ListRemoveObject(pList, objPtr);
- XP_DELETE(objPtr);
- objPtr = NULL;
- return(pAutoStream);
- }
- break;
- }
- case CStreamData::m_OLE: {
- COLEStreamData *pOLEStream = (COLEStreamData *)pAutoStream;
-
- // Compare the server names.
- // This will be a case sensitive thing.
- if(pOLEStream->m_csServerName == pServer) {
- // This is the one. Take it out.
- XP_ListRemoveObject(pList, objPtr);
- XP_DELETE(objPtr);
- objPtr = NULL;
- return(pAutoStream);
- }
- break;
- }
- default:
- // unknown type.
- ASSERT(0);
- break;
- }
- }
-
- // Not successful.
- return(NULL);
- }
-