00001 /* 00002 * File Name: plugin_doc_attributes.h 00003 */ 00004 00005 /* 00006 * This file is part of uds-plugin-common. 00007 * 00008 * uds-plugin-common is free software: you can redistribute it and/or modify 00009 * it under the terms of the GNU General Public License as published by 00010 * the Free Software Foundation, either version 2 of the License, or 00011 * (at your option) any later version. 00012 * 00013 * uds-plugin-common is distributed in the hope that it will be useful, 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 * GNU General Public License for more details. 00017 * 00018 * You should have received a copy of the GNU General Public License 00019 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00020 */ 00021 00022 /** 00023 * Copyright (C) 2008 iRex Technologies B.V. 00024 * All rights reserved. 00025 */ 00026 00027 #ifndef PLUGIN_DOC_ATTRIBUTES_H_ 00028 #define PLUGIN_DOC_ATTRIBUTES_H_ 00029 00030 #ifdef __cplusplus 00031 extern "C" { 00032 #endif 00033 00034 #include "plugin_type.h" 00035 #include "plugin_unknown.h" 00036 00037 /** 00038 * @brief Universal Document Shell Plugin Document Attributes interface. 00039 * Through IPluginDocAttributes, UDS can retrieve and change following 00040 * document attributes: 00041 * - The attribute that indicates whether this document is DRM protected 00042 * or not. 00043 * - The attribute that indicates whether this document is reflowable or 00044 * fixed-size page-orientated. 00045 * - The attribute indicating that this document needs to specfiy correct 00046 * encoding when it's opened. 00047 * - The attribte that inidcaties this document needs to specify PASSWORD. 00048 */ 00049 00050 typedef struct 00051 { 00052 /** 00053 * @brief Get document attributes. 00054 * @param thiz IPluginUnknown pointer of the current document object. 00055 * @param key Name of document attribute. 00056 * @param value Output variable of document attribute. 00057 * @return TODO. Add return code here. 00058 */ 00059 PluginStatus (* get_attribute)( IPluginUnknown *thiz, 00060 const UDSString *key, 00061 UDSString *value ); 00062 00063 /** 00064 * @brief Set document attributes. 00065 * @param thiz IPluginUnknown pointer of the current document object 00066 * @param key Name of document attribute. 00067 * @param value Document attribute to be set. 00068 * @return TODO. Add return code here. 00069 */ 00070 PluginStatus (* set_attribute)( IPluginUnknown *thiz, 00071 const UDSString *key, 00072 const UDSString *value ); 00073 00074 00075 } IPluginDocAttributes; 00076 00077 #ifdef __cplusplus 00078 } 00079 #endif 00080 00081 #endif 00082