00001 /* 00002 * File Name: plugin_collection.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_COLLECTION_H_ 00028 #define PLUGIN_COLLECTION_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 Collection interface. 00039 * Through IPluginCollection, caller can access the elements of data collection 00040 * returned by plugin. 00041 */ 00042 typedef struct 00043 { 00044 /** 00045 * @brief Retrieve start address of the collection data. 00046 * @param thiz IPluginUnknown pointer of collection object. 00047 * @param data_ptr The output variable that contains the start address of 00048 * the collection data. 00049 * @return TODO. Add return code here. 00050 */ 00051 PluginStatus (* get_data)( IPluginUnknown *thiz, 00052 void **data_ptr); 00053 00054 /** 00055 * @brief Retrieve the number of elements. 00056 * @param thiz IPluginUnknown pointer of collection object . 00057 * @return This function returns the number of elements in the collection. 00058 */ 00059 int (* get_num_elements)( IPluginUnknown *thiz ); 00060 00061 } IPluginCollection; 00062 00063 #ifdef __cplusplus 00064 } 00065 #endif 00066 00067 #endif 00068