#ifndef _APL_MAIN_FUNCTIONS_H_
#define _APL_MAIN_FUNCTIONS_H_

#include "CommonClasses.h"
#include "apl_api.h"

//	Массив элементов, которые обрабатывает данная функция
//	Описывает пункты в контекстном меню, которые будут добавлены с помощью этой dll
//	Первый параметр -	всегда - aplPopUp
//
//	Второй параметр -	тип элемента дерева объектов, в контекстное меню которых добавится
//	строка для вызова функции из dll. Если параметр не задан (пустая строка), пункт будет
//	добавлен в главное меню модуля.
//	Его допустимые значения: 
//	Categories		-	Категория
//	Folder			-	Папка
//	Product			-	Изделие/Версия изделия
//	Document		-	Документ/Версия документа
//	Lot				-	Партия изделия
//	PrdInst			-	Экземпляр изделия
//	Characteristic	-	Характеристика
//	BP				-	Бизнес-процесс
//	BPRes			-	Ресурс бизнес-процесса
//	Approval		-	Статус
//
//	Третий параметр -	наименование меню. Представляет собой перечень разделенных 
//	символом '\' наименований пунктов подменю, последний из которых (может быть 
//	единственный) - наименование пункта меню, при выборе которого будет вызвана функция 
//	m_functionName. Каждое наименование может начинаться с номера указанного в квадратных 
//	скобках. Данный номер определяет позицию, под которой будет добавлен пункт меню. Если 
//	номер равен -1 или указан некорректно, пункт меню добавляется в конец (если не указан,
//	добавляется в начало). Если в имени меню указывается пустая строка, в меню добавляется
//	разделитель и пункт m_functionName игнорируется. При обработке пунктов подменю, в 
//	исходном меню ищется подменю с заданным именем. Если такое подменю существует, то 
//	пункт меню добавляется в него, в противном случае подменю с таким именем создается. 
//	Пример наименования меню: "[13]Добавление\\Примеры\\[]Пример использования".
//
//	Четвёртый параметр - имя функции в dll, которая будет вызвана при выборе данного пункта
//	меню. Эта функция должна быть явно прописана в .def файле проекта!
//
//	Пятый и шестой параметры в данной версии не используются.
CaplItemInfo functionArray []=
{
	CaplItemInfo(aplPopUp, "Product", "[2]Показать\\[-1]", "", -1, -1),
	CaplItemInfo(aplPopUp, "Product", "[2]Показать\\[-1]Подсчёт массы и стоимости", "add_CalcWeightAndCost", -1, -1),
	CaplItemInfo(aplPopUp, "Product", "[2]Экспорт\\[0]Маршрутно-нормативная спецификация", "add_export_mns", -1, -1),
	CaplItemInfo(aplPopUp, "Product", "[2]Экспорт\\[1]", "", -1, -1),
};

//Размер массива
int functionArraySize= sizeof(functionArray)/sizeof(CaplItemInfo);

//Менеджеры

//Объявления функций
__declspec (dllexport) bool GetFunctionsList(CArray<CaplItemInfo*, CaplItemInfo*> *strArray);
__declspec (dllexport) bool add_CalcWeightAndCost(CaplAPI* api, aplExtent& inExtent, bool bUpdateUI);
__declspec (dllexport) bool add_export_mns(CaplAPI* api, aplExtent& inExtent, bool bUpdateUI);

//Функции для управления ресурсами
void SetResources();
void ResetResources();

#endif //_APL_MAIN_FUNCTIONS_H_
