aboutsummaryrefslogtreecommitdiff
path: root/Src/Winamp/setup/spage_assoc.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Winamp/setup/spage_assoc.h')
-rw-r--r--Src/Winamp/setup/spage_assoc.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/Src/Winamp/setup/spage_assoc.h b/Src/Winamp/setup/spage_assoc.h
new file mode 100644
index 00000000..f18270b8
--- /dev/null
+++ b/Src/Winamp/setup/spage_assoc.h
@@ -0,0 +1,57 @@
+#ifndef WINAMP_ASSOCIATIONS_SETUP_PAGE_HEADER
+#define WINAMP_ASSOCIATIONS_SETUP_PAGE_HEADER
+
+#include "./ifc_setuppage.h"
+#include <commctrl.h>
+
+#define TYPE_CATEGORIES_NUM 5
+
+class setup_page_assoc : public ifc_setuppage
+{
+public:
+ setup_page_assoc();
+ virtual ~setup_page_assoc();
+
+public:
+ size_t AddRef();
+ size_t Release();
+ HRESULT GetName(bool bShort, const wchar_t **pszName);
+ HRESULT Save(HWND hwndText);
+ HRESULT CreateView(HWND hwndParent, HWND *phwnd);
+ HRESULT Revert(void);
+ HRESULT IsDirty(void);
+ HRESULT Validate(void);
+
+protected:
+ INT_PTR PageDlgProc(UINT uMsg, WPARAM wParam, LPARAM lParam);
+ INT_PTR OnInitDialog(HWND hwndFocus, LPARAM lParam);
+ void OnDestroy(void);
+ void OnSize(UINT nType, INT cx, INT cy);
+ void OnCommand(INT nCtrlID, INT nEvntID, HWND hwndCtrl);
+ BOOL OnNotify(INT nCtrlID, NMHDR *pnmh, LRESULT *pResult);
+
+ BOOL TreeView_OnClick(NMHDR *pnmh);
+ void TreeView_OnItemStateClick(HWND hwndTree, HTREEITEM hItem);
+ BOOL TreeView_OnKeyDown(NMTVKEYDOWN *ptvkd);
+ INT TreeView_OnCustomDraw(NMTVCUSTOMDRAW *ptvcd);
+
+ void UpdateUI(void);
+
+private:
+ size_t ref;
+ HWND hwnd;
+ wchar_t *pszTypes;
+ WORD *pMeta;
+ BYTE expanded[TYPE_CATEGORIES_NUM];
+ wchar_t szTopExt[32];
+ wchar_t szCaretExt[32];
+ BOOL bRegCD;
+ BOOL bAgent;
+ BOOL bExplorerMenu;
+
+protected:
+ friend static INT_PTR WINAPI DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
+ RECVS_DISPATCH;
+};
+
+#endif //WINAMP_ASSOCIATIONS_SETUP_PAGE_HEADER \ No newline at end of file