1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski #ifndef _INETTYPE_HXX 25*b1cdbd2cSJim Jagielski #define _INETTYPE_HXX 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski #include "svl/svldllapi.h" 28*b1cdbd2cSJim Jagielski #include <tools/inetmime.hxx> 29*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/Locale.hpp> 30*b1cdbd2cSJim Jagielski 31*b1cdbd2cSJim Jagielski //============================================================================ 32*b1cdbd2cSJim Jagielski /** Definitions for frequently used media type names. 33*b1cdbd2cSJim Jagielski */ 34*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_OCTSTREAM "application/octet-stream" 35*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_PDF "application/pdf" 36*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_RTF "application/rtf" 37*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_VND_CALC "application/vnd.stardivision.calc" 38*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_VND_CHART "application/vnd.stardivision.chart" 39*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_VND_DRAW "application/vnd.stardivision.draw" 40*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_VND_IMAGE "application/vnd.stardivision.image" 41*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_VND_IMPRESSPACKED \ 42*b1cdbd2cSJim Jagielski "application/vnd.stardivision.impress-packed" 43*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_VND_IMPRESS \ 44*b1cdbd2cSJim Jagielski "application/vnd.stardivision.impress" 45*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_VND_MAIL "application/vnd.stardivision.mail" 46*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_VND_MATH "application/vnd.stardivision.math" 47*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_VND_NEWS "application/vnd.stardivision.news" 48*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_VND_OUTTRAY \ 49*b1cdbd2cSJim Jagielski "application/vnd.stardivision.outtray" 50*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_VND_TEMPLATE \ 51*b1cdbd2cSJim Jagielski "application/vnd.stardivision.template" 52*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_VND_WRITER_GLOBAL \ 53*b1cdbd2cSJim Jagielski "application/vnd.stardivision.writer-global" 54*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_VND_WRITER_WEB \ 55*b1cdbd2cSJim Jagielski "application/vnd.stardivision.writer-web" 56*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_VND_WRITER "application/vnd.stardivision.writer" 57*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_FRAMESET "application/x-frameset" 58*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_GALLERY_THEME "application/x-gallery-theme" 59*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_GALLERY "application/x-gallery" 60*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_JAR "application/x-jar" 61*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_MACRO "application/x-macro" 62*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_MSEXCEL_TEMPL "application/x-msexcel-template" 63*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_MSEXCEL "application/x-msexcel" 64*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_MSPPOINT_TEMPL "application/x-mspowerpoint-template" 65*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_MSPPOINT "application/x-mspowerpoint" 66*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_MSWORD_TEMPL "application/x-msword-template" 67*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_MSWORD "application/x-msword" 68*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_SCHEDULE_EVT "application/x-schedule-event" 69*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_SCHEDULE_FEVT "application/x-schedule-form-event" 70*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_SCHEDULE_FTASK "application/x-schedule-form-task" 71*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_SCHEDULE_TASK "application/x-schedule-task" 72*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_SCHEDULE_CMB "application/x-schedule" 73*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_STARCALC "application/x-starcalc" 74*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_STARCHART "application/x-starchart" 75*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_STARDRAW "application/x-stardraw" 76*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_STARHELP "application/x-starhelp" 77*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_STARIMAGE "application/x-starimage" 78*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_STARIMPRESS "application/x-starimpress" 79*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_STARMAIL_SDM "application/x-starmail-sdm" 80*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_STARMAIL_SMD "application/x-starmail-smd" 81*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_STARMATH "application/x-starmath" 82*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_STARWRITER_GLOB "application/x-starwriter-global" 83*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_STARWRITER "application/x-starwriter" 84*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_CDE_CALENDAR_APP "application/x-sun-ae-file" 85*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_ZIP "application/x-zip-compressed" 86*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_AUDIO_AIFF "audio/aiff" 87*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_AUDIO_BASIC "audio/basic" 88*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_AUDIO_MIDI "audio/midi" 89*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_AUDIO_WAV "audio/wav" 90*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_DOCUMENT ".chaos/document" 91*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_FSYSBOX ".chaos/fsys-box" 92*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_CDROM_VOLUME ".chaos/fsys-cdrom-volume" 93*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_DISK_35 ".chaos/fsys-disk-35" 94*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_DISK_525 ".chaos/fsys-disk-525" 95*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_FSYSFILE ".chaos/fsys-file" 96*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_FIXED_VOLUME ".chaos/fsys-fixed-volume" 97*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_FSYSFOLDER ".chaos/fsys-folder" 98*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_RAM_VOLUME ".chaos/fsys-ram-volume" 99*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_REMOTE_VOLUME ".chaos/fsys-remote-volume" 100*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_REMOVEABLE_VOLUME \ 101*b1cdbd2cSJim Jagielski ".chaos/fsys-removeable-volume" 102*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_FSYSSPECIALFILE ".chaos/fsys-special-file" 103*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_FSYSSPECIALFOLDER ".chaos/fsys-special-folder" 104*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_TAPEDRIVE ".chaos/fsys-tapedrive" 105*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_FSYSURLFILE ".chaos/fsys-urlfile" 106*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_FTPBOX ".chaos/ftp-box" 107*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_FTPFILE ".chaos/ftp-file" 108*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_FTPFOLDER ".chaos/ftp-folder" 109*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_FTPLINK ".chaos/ftp-link" 110*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_HTTPBOX ".chaos/http-box" 111*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_HTTPFILE ".chaos/http-file" 112*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_IMAPBOX ".chaos/imap-box" 113*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_IMAPFOLDER ".chaos/imap-folder" 114*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_MESSAGE ".chaos/message" 115*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_NEWSBOX ".chaos/news-box" 116*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_NEWSGROUP ".chaos/news-group" 117*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_OUTBOX ".chaos/out-box" 118*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_POP3BOX ".chaos/pop3-box" 119*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_PUBLISHBOX ".chaos/publish-box" 120*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_SEARCHBOX ".chaos/search-box" 121*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_SEPARATOR ".chaos/separator" 122*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_BOOKMARK ".chaos/subscribe-bookmark" 123*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_SUBSCRIBEBOX ".chaos/subscribe-box" 124*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_CDFITEM ".chaos/subscribe-cdf-item" 125*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_CDFSUB ".chaos/subscribe-cdf-sub" 126*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_CDF ".chaos/subscribe-cdf" 127*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_STARCHANNEL ".chaos/subscribe-sdc" 128*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_TRASHBOX ".chaos/trash-box" 129*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_TRASH ".chaos/trash-item" 130*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_VIMBBOARDBOX ".chaos/vim-bboardbox" 131*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_VIMBBOARD ".chaos/vim-bboard" 132*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_VIMBOX ".chaos/vim-box" 133*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_CNT_VIMINBOX ".chaos/vim-inbox" 134*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_IMAGE_GENERIC "image/generic" 135*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_IMAGE_GIF "image/gif" 136*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_IMAGE_JPEG "image/jpeg" 137*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_IMAGE_PCX "image/pcx" 138*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_IMAGE_PNG "image/png" 139*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_IMAGE_TIFF "image/tiff" 140*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_IMAGE_BMP "image/x-MS-bmp" 141*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_INET_MSG_RFC822 "message/rfc822" 142*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_INET_MULTI_ALTERNATIVE "multipart/alternative" 143*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_INET_MULTI_DIGEST "multipart/digest" 144*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_INET_MULTI_MIXED "multipart/mixed" 145*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_INET_MULTI_PARALLEL "multipart/parallel" 146*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_INET_MULTI_RELATED "multipart/related" 147*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_TEXT_ICALENDAR "text/calendar" 148*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_TEXT_HTML "text/html" 149*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_TEXT_PLAIN "text/plain" 150*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_TEXT_XMLICALENDAR "text/x-icalxml" 151*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_TEXT_URL "text/x-url" 152*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_TEXT_VCALENDAR "text/x-vCalendar" 153*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_TEXT_VCARD "text/x-vCard" 154*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_VIDEO_VDO "video/vdo" 155*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_VIDEO_MSVIDEO "video/x-msvideo" 156*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_STARMAIL "x-starmail" 157*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_X_VRML "x-world/x-vrml" 158*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_VND_SUN_XML_WRITER "application/vnd.sun.xml.writer" 159*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_VND_SUN_XML_CALC "application/vnd.sun.xml.calc" 160*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_VND_SUN_XML_IMPRESS "application/vnd.sun.xml.impress" 161*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_VND_SUN_XML_DRAW "application/vnd.sun.xml.draw" 162*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_VND_SUN_XML_CHART "application/vnd.sun.xml.chart" 163*b1cdbd2cSJim Jagielski 164*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_VND_SUN_XML_MATH "application/vnd.sun.xml.math" 165*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_VND_SUN_XML_WRITER_GLOBAL "application/vnd.sun.xml.writer-global" 166*b1cdbd2cSJim Jagielski #define CONTENT_TYPE_STR_APP_VND_SUN_XML_IMPRESSPACKED "application/vnd.sun.xml.impress-packed" 167*b1cdbd2cSJim Jagielski 168*b1cdbd2cSJim Jagielski //============================================================================ 169*b1cdbd2cSJim Jagielski /** Definitions for frequently used media type parameter names. 170*b1cdbd2cSJim Jagielski */ 171*b1cdbd2cSJim Jagielski #define INET_CONTENT_TYPE_PARAMETER_CHARSET "charset" 172*b1cdbd2cSJim Jagielski 173*b1cdbd2cSJim Jagielski //============================================================================ 174*b1cdbd2cSJim Jagielski /** Definitions for matching parts of URIs. 175*b1cdbd2cSJim Jagielski */ 176*b1cdbd2cSJim Jagielski #define INETTYPE_URL_PROT_COMPONENT ".component" 177*b1cdbd2cSJim Jagielski #define INETTYPE_URL_PROT_DATA "data" 178*b1cdbd2cSJim Jagielski #define INETTYPE_URL_PROT_FILE "file" 179*b1cdbd2cSJim Jagielski #define INETTYPE_URL_PROT_HTTP "http" 180*b1cdbd2cSJim Jagielski #define INETTYPE_URL_PROT_HTTPS "https" 181*b1cdbd2cSJim Jagielski #define INETTYPE_URL_PROT_MACRO "macro" 182*b1cdbd2cSJim Jagielski #define INETTYPE_URL_PROT_MAILTO "mailto" 183*b1cdbd2cSJim Jagielski #define INETTYPE_URL_PROT_PRIVATE "private" 184*b1cdbd2cSJim Jagielski 185*b1cdbd2cSJim Jagielski #define INETTYPE_URL_SUB_FACTORY "factory" 186*b1cdbd2cSJim Jagielski #define INETTYPE_URL_SUB_HELPID "helpid" 187*b1cdbd2cSJim Jagielski 188*b1cdbd2cSJim Jagielski #define INETTYPE_URL_SSUB_FRAMESET "frameset" 189*b1cdbd2cSJim Jagielski #define INETTYPE_URL_SSUB_SCALC "scalc" 190*b1cdbd2cSJim Jagielski #define INETTYPE_URL_SSUB_SCHART "schart" 191*b1cdbd2cSJim Jagielski #define INETTYPE_URL_SSUB_SDRAW "sdraw" 192*b1cdbd2cSJim Jagielski #define INETTYPE_URL_SSUB_SIMAGE "simage" 193*b1cdbd2cSJim Jagielski #define INETTYPE_URL_SSUB_SIMPRESS "simpress" 194*b1cdbd2cSJim Jagielski #define INETTYPE_URL_SSUB_SMATH "smath" 195*b1cdbd2cSJim Jagielski #define INETTYPE_URL_SSUB_SS "ss" 196*b1cdbd2cSJim Jagielski #define INETTYPE_URL_SSUB_SWRITER "swriter" 197*b1cdbd2cSJim Jagielski 198*b1cdbd2cSJim Jagielski #define INETTYPE_URL_SSSUB_GLOB "GlobalDocument" 199*b1cdbd2cSJim Jagielski #define INETTYPE_URL_SSSUB_WEB "web" 200*b1cdbd2cSJim Jagielski 201*b1cdbd2cSJim Jagielski #define INETTYPE_URL_SCHED_CMB "cmbview" 202*b1cdbd2cSJim Jagielski #define INETTYPE_URL_SCHED_FORM "formular" 203*b1cdbd2cSJim Jagielski #define INETTYPE_URL_SCHED_EVENT "type=event" 204*b1cdbd2cSJim Jagielski #define INETTYPE_URL_SCHED_TASK "type=task" 205*b1cdbd2cSJim Jagielski 206*b1cdbd2cSJim Jagielski //============================================================================ 207*b1cdbd2cSJim Jagielski enum INetContentType 208*b1cdbd2cSJim Jagielski { 209*b1cdbd2cSJim Jagielski CONTENT_TYPE_UNKNOWN, 210*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_OCTSTREAM, 211*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_PDF, 212*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_RTF, 213*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_MSWORD, 214*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_MSWORD_TEMPL, 215*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_STARCALC, 216*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_STARCHART, 217*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_STARDRAW, 218*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_STARHELP, 219*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_STARIMAGE, 220*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_STARIMPRESS, 221*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_STARMATH, 222*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_STARWRITER, 223*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_ZIP, 224*b1cdbd2cSJim Jagielski CONTENT_TYPE_AUDIO_AIFF, 225*b1cdbd2cSJim Jagielski CONTENT_TYPE_AUDIO_BASIC, 226*b1cdbd2cSJim Jagielski CONTENT_TYPE_AUDIO_MIDI, 227*b1cdbd2cSJim Jagielski CONTENT_TYPE_AUDIO_WAV, 228*b1cdbd2cSJim Jagielski CONTENT_TYPE_IMAGE_GIF, 229*b1cdbd2cSJim Jagielski CONTENT_TYPE_IMAGE_JPEG, 230*b1cdbd2cSJim Jagielski CONTENT_TYPE_IMAGE_PCX, 231*b1cdbd2cSJim Jagielski CONTENT_TYPE_IMAGE_PNG, 232*b1cdbd2cSJim Jagielski CONTENT_TYPE_IMAGE_TIFF, 233*b1cdbd2cSJim Jagielski CONTENT_TYPE_IMAGE_BMP, 234*b1cdbd2cSJim Jagielski CONTENT_TYPE_TEXT_HTML, 235*b1cdbd2cSJim Jagielski CONTENT_TYPE_TEXT_PLAIN, 236*b1cdbd2cSJim Jagielski CONTENT_TYPE_TEXT_URL, 237*b1cdbd2cSJim Jagielski CONTENT_TYPE_TEXT_VCARD, 238*b1cdbd2cSJim Jagielski CONTENT_TYPE_VIDEO_VDO, 239*b1cdbd2cSJim Jagielski CONTENT_TYPE_VIDEO_MSVIDEO, 240*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_MESSAGE, 241*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_DOCUMENT, 242*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_POP3BOX, 243*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_IMAPBOX, 244*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_IMAPFOLDER, 245*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_VIMBOX, 246*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_VIMINBOX, 247*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_VIMBBOARDBOX, 248*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_VIMBBOARD, 249*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_NEWSBOX, 250*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_NEWSGROUP, 251*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_OUTBOX, 252*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_FTPBOX, 253*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_FTPFOLDER, 254*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_FTPFILE, 255*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_FTPLINK, 256*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_HTTPBOX, 257*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_FSYSBOX, 258*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_FSYSFOLDER, 259*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_FSYSFILE, 260*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_FSYSURLFILE, 261*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_PUBLISHBOX, 262*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_SEARCHBOX, 263*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_SUBSCRIBEBOX, 264*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_BOOKMARK, 265*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_CDF, 266*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_CDFSUB, 267*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_CDFITEM, 268*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_TRASHBOX, 269*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_TRASH, 270*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_STARMAIL, 271*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_VRML, 272*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_REMOVEABLE_VOLUME, 273*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_FIXED_VOLUME, 274*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_REMOTE_VOLUME, 275*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_RAM_VOLUME, 276*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_CDROM_VOLUME, 277*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_DISK_35, 278*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_DISK_525, 279*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_TAPEDRIVE, 280*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_GALLERY, 281*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_GALLERY_THEME, 282*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_STARCHANNEL, 283*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_SEPARATOR, 284*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_STARWRITER_GLOB, 285*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_STARMAIL_SDM, 286*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_STARMAIL_SMD, 287*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_VND_CALC, 288*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_VND_CHART, 289*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_VND_DRAW, 290*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_VND_IMAGE, 291*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_VND_IMPRESS, 292*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_VND_MAIL, 293*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_VND_MATH, 294*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_VND_WRITER, 295*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_VND_WRITER_GLOBAL, 296*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_VND_WRITER_WEB, 297*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_SCHEDULE, 298*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_SCHEDULE_EVT, 299*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_SCHEDULE_TASK, 300*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_SCHEDULE_FORM_EVT, 301*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_SCHEDULE_FORM_TASK, 302*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_FRAMESET, 303*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_MACRO, 304*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_FSYSSPECIALFOLDER, 305*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_FSYSSPECIALFILE, 306*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_VND_TEMPLATE, 307*b1cdbd2cSJim Jagielski CONTENT_TYPE_IMAGE_GENERIC, 308*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_VND_NEWS, 309*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_VND_OUTTRAY, 310*b1cdbd2cSJim Jagielski CONTENT_TYPE_X_CNT_HTTPFILE, 311*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_MSEXCEL, 312*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_MSEXCEL_TEMPL, 313*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_MSPPOINT, 314*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_MSPPOINT_TEMPL, 315*b1cdbd2cSJim Jagielski CONTENT_TYPE_TEXT_VCALENDAR, 316*b1cdbd2cSJim Jagielski CONTENT_TYPE_TEXT_ICALENDAR, 317*b1cdbd2cSJim Jagielski CONTENT_TYPE_TEXT_XMLICALENDAR, 318*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_CDE_CALENDAR_APP, 319*b1cdbd2cSJim Jagielski CONTENT_TYPE_INET_MESSAGE_RFC822, 320*b1cdbd2cSJim Jagielski CONTENT_TYPE_INET_MULTIPART_ALTERNATIVE, 321*b1cdbd2cSJim Jagielski CONTENT_TYPE_INET_MULTIPART_DIGEST, 322*b1cdbd2cSJim Jagielski CONTENT_TYPE_INET_MULTIPART_PARALLEL, 323*b1cdbd2cSJim Jagielski CONTENT_TYPE_INET_MULTIPART_RELATED, 324*b1cdbd2cSJim Jagielski CONTENT_TYPE_INET_MULTIPART_MIXED, 325*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_VND_IMPRESSPACKED, 326*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_JAR, 327*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_VND_SUN_XML_WRITER, 328*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_VND_SUN_XML_CALC, 329*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_VND_SUN_XML_IMPRESS, 330*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_VND_SUN_XML_DRAW, 331*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_VND_SUN_XML_CHART, 332*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_VND_SUN_XML_MATH, 333*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_VND_SUN_XML_WRITER_GLOBAL, 334*b1cdbd2cSJim Jagielski CONTENT_TYPE_APP_VND_SUN_XML_IMPRESSPACKED, 335*b1cdbd2cSJim Jagielski CONTENT_TYPE_LAST = CONTENT_TYPE_APP_VND_SUN_XML_IMPRESSPACKED 336*b1cdbd2cSJim Jagielski }; 337*b1cdbd2cSJim Jagielski 338*b1cdbd2cSJim Jagielski //============================================================================ 339*b1cdbd2cSJim Jagielski class SVL_DLLPUBLIC INetContentTypes 340*b1cdbd2cSJim Jagielski { 341*b1cdbd2cSJim Jagielski public: 342*b1cdbd2cSJim Jagielski static void Uninitialize(); 343*b1cdbd2cSJim Jagielski 344*b1cdbd2cSJim Jagielski static INetContentType RegisterContentType(UniString const & rTypeName, 345*b1cdbd2cSJim Jagielski UniString const & 346*b1cdbd2cSJim Jagielski rPresentation, 347*b1cdbd2cSJim Jagielski UniString const * pExtension 348*b1cdbd2cSJim Jagielski = 0, 349*b1cdbd2cSJim Jagielski UniString const * 350*b1cdbd2cSJim Jagielski pSystemFileType = 0); 351*b1cdbd2cSJim Jagielski 352*b1cdbd2cSJim Jagielski static INetContentType GetContentType(UniString const & rTypeName); 353*b1cdbd2cSJim Jagielski 354*b1cdbd2cSJim Jagielski static UniString GetContentType(INetContentType eTypeID); 355*b1cdbd2cSJim Jagielski 356*b1cdbd2cSJim Jagielski static UniString GetPresentation(INetContentType eTypeID, 357*b1cdbd2cSJim Jagielski const ::com::sun::star::lang::Locale& aLocale); 358*b1cdbd2cSJim Jagielski 359*b1cdbd2cSJim Jagielski static UniString GetExtension(UniString const & rTypeName); 360*b1cdbd2cSJim Jagielski 361*b1cdbd2cSJim Jagielski static INetContentType GetContentType4Extension(UniString const & 362*b1cdbd2cSJim Jagielski rExtension); 363*b1cdbd2cSJim Jagielski 364*b1cdbd2cSJim Jagielski static INetContentType GetContentTypeFromURL(UniString const & rURL); 365*b1cdbd2cSJim Jagielski 366*b1cdbd2cSJim Jagielski static bool GetExtensionFromURL(UniString const & rURL, 367*b1cdbd2cSJim Jagielski UniString & rExtension); 368*b1cdbd2cSJim Jagielski 369*b1cdbd2cSJim Jagielski static INetContentType MapStringToContentType(UniString const & 370*b1cdbd2cSJim Jagielski rPresentation); 371*b1cdbd2cSJim Jagielski 372*b1cdbd2cSJim Jagielski /** Parse the body of an RFC 2045 Content-Type header field. 373*b1cdbd2cSJim Jagielski 374*b1cdbd2cSJim Jagielski @param rMediaType The body of the Content-Type header field. It must 375*b1cdbd2cSJim Jagielski be of the form 376*b1cdbd2cSJim Jagielski 377*b1cdbd2cSJim Jagielski token "/" token *(";" token "=" (token / quoted-string)) 378*b1cdbd2cSJim Jagielski 379*b1cdbd2cSJim Jagielski with intervening linear white space and comments (cf. RFCs 822, 2045). 380*b1cdbd2cSJim Jagielski The RFC 2231 extension are supported. The encoding of rMediaType 381*b1cdbd2cSJim Jagielski should be US-ASCII, but any values in the range 0x80--0xFF are 382*b1cdbd2cSJim Jagielski interpretet 'as appropriate.' 383*b1cdbd2cSJim Jagielski 384*b1cdbd2cSJim Jagielski @param rType Returns the type (the first of the above tokens), in US- 385*b1cdbd2cSJim Jagielski ASCII encoding and converted to lower case. 386*b1cdbd2cSJim Jagielski 387*b1cdbd2cSJim Jagielski @param rSubType Returns the sub type (the second of the above 388*b1cdbd2cSJim Jagielski tokens), in US-ASCII encoding and converted to lower case. 389*b1cdbd2cSJim Jagielski 390*b1cdbd2cSJim Jagielski @param rParameters If not null, returns the parameters as a list of 391*b1cdbd2cSJim Jagielski INetContentTypeParameters (the attributes are in US-ASCII encoding and 392*b1cdbd2cSJim Jagielski converted to lower case, the values are in Unicode encoding). If 393*b1cdbd2cSJim Jagielski null, only the syntax of the parameters is checked, but they are not 394*b1cdbd2cSJim Jagielski returned. 395*b1cdbd2cSJim Jagielski 396*b1cdbd2cSJim Jagielski @return True if the syntax of the field body is correct. If false is 397*b1cdbd2cSJim Jagielski returned, none of the output parameters will be modified! 398*b1cdbd2cSJim Jagielski */ 399*b1cdbd2cSJim Jagielski static bool parse(ByteString const & rMediaType, ByteString & rType, 400*b1cdbd2cSJim Jagielski ByteString & rSubType, 401*b1cdbd2cSJim Jagielski INetContentTypeParameterList * pParameters = 0); 402*b1cdbd2cSJim Jagielski 403*b1cdbd2cSJim Jagielski /** Parse the body of an RFC 2045 Content-Type header field. 404*b1cdbd2cSJim Jagielski 405*b1cdbd2cSJim Jagielski @param rMediaType The body of the Content-Type header field. It must 406*b1cdbd2cSJim Jagielski be of the form 407*b1cdbd2cSJim Jagielski 408*b1cdbd2cSJim Jagielski token "/" token *(";" token "=" (token / quoted-string)) 409*b1cdbd2cSJim Jagielski 410*b1cdbd2cSJim Jagielski with intervening linear white space and comments (cf. RFCs 822, 2045). 411*b1cdbd2cSJim Jagielski The RFC 2231 extension are supported. The encoding of rMediaType 412*b1cdbd2cSJim Jagielski should be US-ASCII, but any Unicode values in the range U+0080..U+FFFF 413*b1cdbd2cSJim Jagielski are interpretet 'as appropriate.' 414*b1cdbd2cSJim Jagielski 415*b1cdbd2cSJim Jagielski @param rType Returns the type (the first of the above tokens), in US- 416*b1cdbd2cSJim Jagielski ASCII encoding and converted to lower case. 417*b1cdbd2cSJim Jagielski 418*b1cdbd2cSJim Jagielski @param rSubType Returns the sub type (the second of the above 419*b1cdbd2cSJim Jagielski tokens), in US-ASCII encoding and converted to lower case. 420*b1cdbd2cSJim Jagielski 421*b1cdbd2cSJim Jagielski @param rParameters If not null, returns the parameters as a list of 422*b1cdbd2cSJim Jagielski INetContentTypeParameters (the attributes are in US-ASCII encoding and 423*b1cdbd2cSJim Jagielski converted to lower case, the values are in Unicode encoding). If 424*b1cdbd2cSJim Jagielski null, only the syntax of the parameters is checked, but they are not 425*b1cdbd2cSJim Jagielski returned. 426*b1cdbd2cSJim Jagielski 427*b1cdbd2cSJim Jagielski @return True if the syntax of the field body is correct. If false is 428*b1cdbd2cSJim Jagielski returned, none of the output parameters will be modified! 429*b1cdbd2cSJim Jagielski */ 430*b1cdbd2cSJim Jagielski static bool parse(UniString const & rMediaType, UniString & rType, 431*b1cdbd2cSJim Jagielski UniString & rSubType, 432*b1cdbd2cSJim Jagielski INetContentTypeParameterList * pParameters = 0); 433*b1cdbd2cSJim Jagielski 434*b1cdbd2cSJim Jagielski /** Append a parameter to the string representation of a MIME media type. 435*b1cdbd2cSJim Jagielski 436*b1cdbd2cSJim Jagielski @param rMediaType The string representation of a MIME media type. 437*b1cdbd2cSJim Jagielski 438*b1cdbd2cSJim Jagielski @param rAttribute The name of the parameter. Must be a valid RFC 439*b1cdbd2cSJim Jagielski 2045 token. 440*b1cdbd2cSJim Jagielski 441*b1cdbd2cSJim Jagielski @param rValue The value of the paramter. Must only consist of US- 442*b1cdbd2cSJim Jagielski ASCII characters. 443*b1cdbd2cSJim Jagielski 444*b1cdbd2cSJim Jagielski @return The string representation of rMediaType with the new 445*b1cdbd2cSJim Jagielski parameter appended. It is not checked whether a parameter with that 446*b1cdbd2cSJim Jagielski name already existed in rMediaType. 447*b1cdbd2cSJim Jagielski */ 448*b1cdbd2cSJim Jagielski static ByteString appendUSASCIIParameter(ByteString const & rMediaType, 449*b1cdbd2cSJim Jagielski ByteString const & rAttribute, 450*b1cdbd2cSJim Jagielski ByteString const & rValue); 451*b1cdbd2cSJim Jagielski 452*b1cdbd2cSJim Jagielski /** Append a parameter to the string representation of a MIME media type. 453*b1cdbd2cSJim Jagielski 454*b1cdbd2cSJim Jagielski @param rMediaType The string representation of a MIME media type. 455*b1cdbd2cSJim Jagielski 456*b1cdbd2cSJim Jagielski @param rAttribute The name of the parameter. Must be a valid RFC 457*b1cdbd2cSJim Jagielski 2045 token. 458*b1cdbd2cSJim Jagielski 459*b1cdbd2cSJim Jagielski @param rValue The value of the paramter. Must only consist of US- 460*b1cdbd2cSJim Jagielski ASCII characters. 461*b1cdbd2cSJim Jagielski 462*b1cdbd2cSJim Jagielski @return The string representation of rMediaType with the new 463*b1cdbd2cSJim Jagielski parameter appended. It is not checked whether a parameter with that 464*b1cdbd2cSJim Jagielski name already existed in rMediaType. 465*b1cdbd2cSJim Jagielski */ 466*b1cdbd2cSJim Jagielski static UniString appendUSASCIIParameter(UniString const & rMediaType, 467*b1cdbd2cSJim Jagielski UniString const & rAttribute, 468*b1cdbd2cSJim Jagielski UniString const & rValue); 469*b1cdbd2cSJim Jagielski }; 470*b1cdbd2cSJim Jagielski 471*b1cdbd2cSJim Jagielski #endif // _INETTYPE_HXX 472*b1cdbd2cSJim Jagielski 473