84 lines
2.2 KiB
C
84 lines
2.2 KiB
C
|
#ifndef NULLSOFT_WEBDEV_PLUGIN_NAVIGATION_HEADER
|
||
|
#define NULLSOFT_WEBDEV_PLUGIN_NAVIGATION_HEADER
|
||
|
|
||
|
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
|
||
|
#pragma once
|
||
|
#endif
|
||
|
|
||
|
#include <wtypes.h>
|
||
|
#include <ifc_mlnavigationcallback.h>
|
||
|
#include <vector>
|
||
|
|
||
|
typedef LPVOID HNAVITEM;
|
||
|
class ifc_omservice;
|
||
|
|
||
|
class Navigation : public ifc_mlnavigationcallback
|
||
|
{
|
||
|
protected:
|
||
|
Navigation();
|
||
|
~Navigation();
|
||
|
|
||
|
public:
|
||
|
static HRESULT CreateInstance(Navigation **instance);
|
||
|
|
||
|
public:
|
||
|
/* Dispatchable */
|
||
|
size_t AddRef();
|
||
|
size_t Release();
|
||
|
int QueryInterface(GUID interface_guid, void **object);
|
||
|
|
||
|
/* ifc_mlnavigationcallback */
|
||
|
void ImageChanged(LPCWSTR pszName, INT index);
|
||
|
|
||
|
public:
|
||
|
HRESULT Finish();
|
||
|
|
||
|
BOOL ProcessMessage(INT msg, INT_PTR param1, INT_PTR param2, INT_PTR param3, INT_PTR *result);
|
||
|
|
||
|
HNAVITEM GetActive(ifc_omservice **serviceOut);
|
||
|
HWND GetActiveView(ifc_omservice **serviceOut);
|
||
|
|
||
|
HRESULT SelectItem(HNAVITEM hItem, LPCWSTR pszUrl);
|
||
|
HRESULT DeleteItem(HNAVITEM hItem);
|
||
|
HRESULT DeleteAll();
|
||
|
|
||
|
HRESULT CreatePopup(HNAVITEM hItem, HWND *hwnd);
|
||
|
|
||
|
HRESULT GetService(HNAVITEM hItem, ifc_omservice **service);
|
||
|
HRESULT UpdateService(ifc_omservice *service, UINT modifiedFlags);
|
||
|
HNAVITEM FindService(UINT serviceId, ifc_omservice **serviceOut);
|
||
|
HRESULT ShowService(UINT serviceId, LPCWSTR pszUrl);
|
||
|
|
||
|
HNAVITEM CreateItem(ifc_omservice *service);
|
||
|
HRESULT CreateUserService(HNAVITEM *itemOut);
|
||
|
|
||
|
protected:
|
||
|
HRESULT Initialize();
|
||
|
HRESULT SaveOrder();
|
||
|
HRESULT Order(std::vector<ifc_omservice *>&list);
|
||
|
|
||
|
HNAVITEM GetMessageItem(INT msg, INT_PTR param1);
|
||
|
HNAVITEM CreateItemInt(HNAVITEM hParent, ifc_omservice *service);
|
||
|
HRESULT SelectItemInt(HNAVITEM hItem, UINT serviceId, LPCWSTR pszUrl);
|
||
|
|
||
|
HRESULT GenerateServiceName(LPWSTR pszBuffer, INT cchBufferMax);
|
||
|
|
||
|
HRESULT OnCreateView(HNAVITEM hItem, HWND hParent, HWND *hView);
|
||
|
HRESULT OnContextMenu(HNAVITEM hItem, HWND hHost, POINTS pts);
|
||
|
HRESULT OnEndTitleEdit(HNAVITEM hItem, LPCWSTR pszNewTitle);
|
||
|
HRESULT OnDeleteItem(HNAVITEM hItem);
|
||
|
HRESULT OnKeyDown(HNAVITEM hItem, NMTVKEYDOWN *pnmkd);
|
||
|
HRESULT OnControlDestroy();
|
||
|
|
||
|
protected:
|
||
|
size_t ref;
|
||
|
HNAVITEM hRoot;
|
||
|
HWND hLibrary;
|
||
|
UINT cookie;
|
||
|
|
||
|
protected:
|
||
|
RECVS_DISPATCH;
|
||
|
};
|
||
|
|
||
|
#endif //NULLSOFT_WEBDEV_PLUGIN_NAVIGATION_HEADER
|