bug fix in net event remote port display

basic search in filters view (Ctrl+F)
Minor tweaks
This commit is contained in:
Pavel Yosifovich
2022-12-20 14:58:53 -05:00
parent 8fcd19e09f
commit f76e300034
25 changed files with 163 additions and 35 deletions
+1 -1
View File
@@ -147,7 +147,7 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="Enumerators.h" />
<ClInclude Include="WFPEnumerators.h" />
<ClInclude Include="pch.h" />
<ClInclude Include="WFPEngine.h" />
<ClInclude Include="WFPEnumerator.h" />
+1 -1
View File
@@ -21,7 +21,7 @@
<ClInclude Include="WFPEngine.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Enumerators.h">
<ClInclude Include="WFPEnumerators.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="WFPEnumerator.h">
+1 -1
View File
@@ -4,7 +4,7 @@
#include <VirtualListView.h>
#include "Interfaces.h"
#include <WFPEngine.h>
#include <Enumerators.h>
#include <WFPEnumerators.h>
class WFPEngine;
+51 -3
View File
@@ -9,7 +9,7 @@
#include "WFPHelper.h"
#include <ResizablePropertySheet.h>
#include "AppSettings.h"
#include <Enumerators.h>
#include <WFPEnumerators.h>
#include <ClipboardHelper.h>
#include <fstream>
#include <ThemeHelper.h>
@@ -163,7 +163,8 @@ LRESULT CFiltersView::OnActivate(UINT, WPARAM activate, LPARAM, BOOL&) {
}
LRESULT CFiltersView::OnDeleteFilter(WORD, WORD, HWND, BOOL&) {
ATLASSERT(m_List.GetSelectedCount() > 0);
int selected = m_List.GetSelectedCount();
ATLASSERT(selected > 0);
if (AtlMessageBox(m_hWnd, L"Delete selected filter(s)?", IDS_TITLE, MB_ICONWARNING | MB_YESNO | MB_DEFBUTTON2) == IDNO)
return 0;
@@ -177,7 +178,8 @@ LRESULT CFiltersView::OnDeleteFilter(WORD, WORD, HWND, BOOL&) {
m_List.SelectAllItems(false);
Refresh();
}
AtlMessageBox(m_hWnd, std::format(L"Deleted {} filters", deleted).c_str(), IDS_TITLE, MB_ICONINFORMATION);
if(deleted < selected)
AtlMessageBox(m_hWnd, std::format(L"Deleted {}/{} filters", deleted, selected).c_str(), IDS_TITLE, MB_ICONINFORMATION);
return 0;
}
@@ -204,6 +206,52 @@ LRESULT CFiltersView::OnSave(WORD, WORD, HWND, BOOL&) {
return 0;
}
LRESULT CFiltersView::OnFind(UINT, WPARAM, LPARAM, BOOL&) {
auto findDlg = Frame()->GetFindDialog();
auto searchDown = findDlg->SearchDown();
int start = m_List.GetNextItem(-1, LVIS_SELECTED);
CString find(findDlg->GetFindString());
auto ignoreCase = !findDlg->MatchCase();
if (ignoreCase)
find.MakeLower();
auto columns = m_List.GetHeader().GetItemCount();
auto count = m_List.GetItemCount();
int from = searchDown ? start + 1 : start - 1 + count;
int to = searchDown ? count + start : start + 1;
int step = searchDown ? 1 : -1;
int findIndex = -1;
CString text;
for (int i = from; i != to; i += step) {
int index = i % count;
for (int c = 0; c < columns; c++) {
m_List.GetItemText(index, c, text);
if (ignoreCase)
text.MakeLower();
if (text.Find(find) >= 0) {
findIndex = index;
break;
}
}
if (findIndex >= 0)
break;
}
if (findIndex >= 0) {
m_List.SelectItem(findIndex);
m_List.SetFocus();
}
else {
AtlMessageBox(m_hWnd, L"Finsihed searching list.", IDS_TITLE, MB_ICONINFORMATION);
}
return 0;
}
LRESULT CFiltersView::OnFindNext(WORD, WORD, HWND, BOOL&) {
return SendMessage(CFindReplaceDialog::GetFindReplaceMsg());
}
void CFiltersView::DoSort(SortInfo const* si) {
auto col = GetColumnManager(m_List)->GetColumnTag<ColumnType>(si->SortColumn);
auto asc = si->SortAscending;
+4
View File
@@ -34,6 +34,7 @@ public:
BEGIN_MSG_MAP(CFiltersView)
MESSAGE_HANDLER(WM_ACTIVATE, OnActivate)
MESSAGE_HANDLER(CFindReplaceDialog::GetFindReplaceMsg(), OnFind)
MESSAGE_HANDLER(WM_CREATE, OnCreate)
CHAIN_MSG_MAP(CVirtualListView<CFiltersView>)
CHAIN_MSG_MAP(CCustomDraw<CFiltersView>)
@@ -43,6 +44,7 @@ public:
COMMAND_ID_HANDLER(ID_VIEW_REFRESH, OnRefresh)
COMMAND_ID_HANDLER(ID_EDIT_DELETE, OnDeleteFilter)
COMMAND_ID_HANDLER(ID_EDIT_COPY, OnCopy)
COMMAND_ID_HANDLER(ID_EDIT_FINDNEXT, OnFindNext)
COMMAND_ID_HANDLER(ID_FILE_SAVE, OnSave)
END_MSG_MAP()
@@ -82,6 +84,8 @@ private:
LRESULT OnDeleteFilter(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
LRESULT OnCopy(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
LRESULT OnSave(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
LRESULT OnFind(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
LRESULT OnFindNext(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
WFPEngine& m_Engine;
+1 -1
View File
@@ -4,7 +4,7 @@
#include "StringHelper.h"
#include <ranges>
#include "AppSettings.h"
#include <Enumerators.h>
#include <WFPEnumerators.h>
CHierarchyView::CHierarchyView(IMainFrame* frame, WFPEngine& engine) : CFrameView(frame), m_Engine(engine) {
}
+1
View File
@@ -5,5 +5,6 @@ struct IMainFrame abstract {
virtual CUpdateUIBase& UI() = 0;
virtual HFONT GetMonoFont() const = 0;
virtual bool TrackPopupMenu(HMENU hMenu, DWORD flags, int x, int y, HWND hWnd = nullptr) = 0;
virtual CFindReplaceDialog* GetFindDialog() const = 0;
};
+1 -1
View File
@@ -4,7 +4,7 @@
#include <SortHelper.h>
#include "WFPHelper.h"
#include "LayerGeneralPage.h"
#include <Enumerators.h>
#include <WFPEnumerators.h>
#include <ClipboardHelper.h>
#include <ThemeHelper.h>
+39
View File
@@ -21,6 +21,9 @@
const int WINDOW_MENU_POSITION = 4;
BOOL CMainFrame::PreTranslateMessage(MSG* pMsg) {
if (m_pFindDlg && m_pFindDlg->IsDialogMessageW(pMsg))
return TRUE;
if (CFrameWindowImpl<CMainFrame>::PreTranslateMessage(pMsg))
return TRUE;
@@ -58,6 +61,9 @@ LRESULT CMainFrame::OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/
{ ID_VIEW_SUBLAYERS, IDI_SUBLAYER },
{ ID_VIEW_CALLOUTS, IDI_CALLOUT },
{ ID_VIEW_PROVIDERCONTEXTS, IDI_CONTEXT },
{ 0 },
{ ID_EDIT_FIND, IDI_FIND },
{ ID_EDIT_FINDNEXT, IDI_FIND_NEXT },
};
CreateSimpleReBar(ATL_SIMPLE_REBAR_NOBORDER_STYLE);
auto tb = ToolbarHelper::CreateAndInitToolBar(m_hWnd, buttons, _countof(buttons));
@@ -120,6 +126,10 @@ bool CMainFrame::TrackPopupMenu(HMENU hMenu, DWORD flags, int x, int y, HWND hWn
return ShowContextMenu(hMenu, flags, x, y, hWnd);
}
CFindReplaceDialog* CMainFrame::GetFindDialog() const {
return m_pFindDlg;
}
void CMainFrame::InitMenu() {
struct {
UINT id, icon;
@@ -143,6 +153,8 @@ void CMainFrame::InitMenu() {
{ ID_VIEW_NETWORKEVENTS, IDI_EVENT },
{ ID_FILE_OPEN, IDI_OPEN },
{ ID_FILE_SAVE, IDI_SAVE },
{ ID_EDIT_FIND, IDI_FIND },
{ ID_EDIT_FINDNEXT, IDI_FIND_NEXT },
};
for (auto& cmd : cmds) {
if (cmd.icon)
@@ -161,6 +173,7 @@ void CMainFrame::UpdateUI() {
UIEnable(ID_EDIT_DELETE, false);
UIEnable(ID_VIEW_REFRESH, anyPage);
UIEnable(ID_EDIT_PROPERTIES, false);
UIEnable(ID_EDIT_FIND, anyPage);
}
void CMainFrame::SetAlwaysOnTop(bool onTop) {
@@ -341,3 +354,29 @@ LRESULT CMainFrame::OnAlwaysOnTop(WORD, WORD, HWND, BOOL&) {
SetAlwaysOnTop(settings.AlwaysOnTop());
return 0;
}
LRESULT CMainFrame::OnEditFind(WORD, WORD, HWND, BOOL&) {
ATLASSERT(m_view.GetPageCount() > 0);
if (m_pFindDlg == nullptr) {
m_pFindDlg = new CFindReplaceDialog;
m_pFindDlg->Create(TRUE, m_SearchText, nullptr, FR_DOWN | FR_HIDEWHOLEWORD, m_hWnd);
m_pFindDlg->ShowWindow(SW_SHOW);
}
return 0;
}
LRESULT CMainFrame::OnFind(UINT msg, WPARAM wp, LPARAM lp, BOOL&) {
if (m_pFindDlg->IsTerminating()) {
m_pFindDlg = nullptr;
return 0;
}
m_pFindDlg->SetFocus();
if (auto page = m_view.GetActivePage(); page >= 0) {
m_SearchText = m_pFindDlg->GetFindString();
::SendMessage(m_view.GetPageHWND(page), msg, wp, lp);
}
return 0;
}
+7
View File
@@ -30,6 +30,7 @@ public:
COMMAND_ID_HANDLER(ID_VIEW_STATUS_BAR, OnViewStatusBar)
COMMAND_ID_HANDLER(ID_VIEW_HIERARCHY, OnViewHierarchy)
COMMAND_ID_HANDLER(ID_VIEW_NETWORKEVENTS, OnViewNetEvents)
MESSAGE_HANDLER(CFindReplaceDialog::GetFindReplaceMsg(), OnFind)
COMMAND_ID_HANDLER(ID_APP_ABOUT, OnAppAbout)
NOTIFY_CODE_HANDLER(TBVN_PAGEACTIVATED, OnPageActivated)
COMMAND_ID_HANDLER(ID_OPTIONS_ALWAYSONTOP, OnAlwaysOnTop)
@@ -42,6 +43,7 @@ public:
MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
MESSAGE_HANDLER(WM_SHOWWINDOW, OnShowWindow)
MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBkgnd)
COMMAND_ID_HANDLER(ID_EDIT_FIND, OnEditFind)
COMMAND_ID_HANDLER(ID_APP_EXIT, OnFileExit)
CHAIN_MSG_MAP(CAutoUpdateUI<CMainFrame>)
CHAIN_MSG_MAP(COwnerDrawnMenu<CMainFrame>)
@@ -58,6 +60,7 @@ private:
CUpdateUIBase& UI() override;
HFONT GetMonoFont() const override;
bool TrackPopupMenu(HMENU hMenu, DWORD flags, int x, int y, HWND hWnd = nullptr) override;
CFindReplaceDialog* GetFindDialog() const override;
void InitMenu();
void UpdateUI();
@@ -85,9 +88,13 @@ private:
LRESULT OnWindowActivate(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
LRESULT OnPageActivated(int /*idCtrl*/, LPNMHDR /*pnmh*/, BOOL& /*bHandled*/);
LRESULT OnAlwaysOnTop(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
LRESULT OnEditFind(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
LRESULT OnFind(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
WFPEngine m_Engine;
CFont m_MonoFont;
CCustomTabView m_view;
CMultiPaneStatusBarCtrl m_StatusBar;
CFindReplaceDialog* m_pFindDlg{ nullptr };
CString m_SearchText;
};
+4 -4
View File
@@ -1,6 +1,6 @@
#include "pch.h"
#include "NetEventsView.h"
#include <Enumerators.h>
#include <WFPEnumerators.h>
#include <atltime.h>
#include "StringHelper.h"
#include <SortHelper.h>
@@ -80,7 +80,7 @@ int CNetEventsView::GetRowImage(HWND, int row, int col) const {
void CNetEventsView::UpdateUI() {
}
CString const& CNetEventsView::GetLocalAddress(NetEventInfo& info) {
CString const& CNetEventsView::GetLocalAddress(NetEventInfo& info) const {
if (info.LocalAddress.IsEmpty()) {
auto const& header = info.Data->header;
auto flags = header.flags;
@@ -92,7 +92,7 @@ CString const& CNetEventsView::GetLocalAddress(NetEventInfo& info) {
return info.LocalAddress;
}
CString const& CNetEventsView::GetRemoteAddress(NetEventInfo& info) {
CString const& CNetEventsView::GetRemoteAddress(NetEventInfo& info) const {
if (info.RemoteAddress.IsEmpty()) {
auto const& header = info.Data->header;
auto flags = header.flags;
@@ -109,7 +109,7 @@ UINT16 CNetEventsView::GetLocalPort(NetEventInfo& info) const {
}
UINT16 CNetEventsView::GetRemotePort(NetEventInfo& info) const {
return (info.Data->header.flags & FWPM_NET_EVENT_FLAG_REMOTE_PORT_SET) ? info.Data->header.localPort : 0;
return (info.Data->header.flags & FWPM_NET_EVENT_FLAG_REMOTE_PORT_SET) ? info.Data->header.remotePort : 0;
}
CString const& CNetEventsView::GetAppId(NetEventInfo& info) {
+2 -2
View File
@@ -47,8 +47,8 @@ private:
};
void UpdateUI();
CString const& GetLocalAddress(NetEventInfo& info);
CString const& GetRemoteAddress(NetEventInfo& info);
CString const& GetLocalAddress(NetEventInfo& info) const;
CString const& GetRemoteAddress(NetEventInfo& info) const;
UINT16 GetLocalPort(NetEventInfo& info) const;
UINT16 GetRemotePort(NetEventInfo& info) const;
CString const& GetAppId(NetEventInfo& info);
+1 -1
View File
@@ -3,7 +3,7 @@
#include "StringHelper.h"
#include <SortHelper.h>
#include "resource.h"
#include <Enumerators.h>
#include <WFPEnumerators.h>
CProviderContextView::CProviderContextView(IMainFrame* frame, WFPEngine& engine) : CFrameView(frame), m_Engine(engine) {
}
+1 -1
View File
@@ -4,7 +4,7 @@
#include <VirtualListView.h>
#include "Interfaces.h"
#include <WFPEngine.h>
#include <Enumerators.h>
#include <WFPEnumerators.h>
class WFPEngine;
+1 -1
View File
@@ -4,7 +4,7 @@
#include <VirtualListView.h>
#include "Interfaces.h"
#include <WFPEngine.h>
#include <Enumerators.h>
#include <WFPEnumerators.h>
class WFPEngine;
+1 -1
View File
@@ -3,7 +3,7 @@
#include "StringHelper.h"
#include <SortHelper.h>
#include "resource.h"
#include <Enumerators.h>
#include <WFPEnumerators.h>
CSublayersView::CSublayersView(IMainFrame* frame, WFPEngine& engine) : CFrameView(frame), m_Engine(engine) {
}
+23 -12
View File
@@ -73,6 +73,9 @@ BEGIN
MENUITEM "&Delete\tDel", ID_EDIT_DELETE
MENUITEM SEPARATOR
MENUITEM "Properties...\tAlt+Enter", ID_EDIT_PROPERTIES
MENUITEM SEPARATOR
MENUITEM "&Find...\tCtrl+F", ID_EDIT_FIND
MENUITEM "Find &Next\tF3", ID_EDIT_FINDNEXT
END
POPUP "&View"
BEGIN
@@ -194,6 +197,12 @@ IDI_SAVE ICON "res\\Save.ico"
IDI_OPEN ICON "res\\Open.ico"
IDI_FIND ICON "res\\Find.ico"
IDI_FIND_NEXT ICON "res\\Find-next.ico"
IDI_FIND_PREV ICON "res\\Find-prev.ico"
/////////////////////////////////////////////////////////////////////////////
//
@@ -305,17 +314,16 @@ FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "OK",IDOK,164,246,50,14
PUSHBUTTON "Cancel",IDCANCEL,230,246,50,14
LTEXT "Key:",IDC_STATIC,7,15,16,8
EDITTEXT IDC_KEY,51,13,234,12,ES_AUTOHSCROLL | NOT WS_BORDER,WS_EX_STATICEDGE
LTEXT "Name:",IDC_STATIC,7,36,22,8
EDITTEXT IDC_NAME,51,34,359,12,ES_AUTOHSCROLL | NOT WS_BORDER,WS_EX_STATICEDGE
LTEXT "Description:",IDC_STATIC,7,57,39,8
EDITTEXT IDC_DESC,51,55,359,12,ES_AUTOHSCROLL | NOT WS_BORDER,WS_EX_STATICEDGE
LTEXT "ID:",IDC_STATIC,347,16,12,8
EDITTEXT IDC_ID,365,14,70,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_STATICEDGE
PUSHBUTTON "Generate",IDC_GENERATE,290,12,50,14
LTEXT "Provider:",IDC_STATIC,7,81,30,8
COMBOBOX IDC_PROVIDER,51,78,279,75,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
LTEXT "Key:",IDC_STATIC,7,10,16,8
EDITTEXT IDC_KEY,51,8,234,12,ES_AUTOHSCROLL | NOT WS_BORDER,WS_EX_STATICEDGE
LTEXT "Name:",IDC_STATIC,7,31,22,8
EDITTEXT IDC_NAME,51,29,359,12,ES_AUTOHSCROLL | NOT WS_BORDER,WS_EX_STATICEDGE
LTEXT "Description:",IDC_STATIC,7,52,39,8
EDITTEXT IDC_DESC,51,50,359,12,ES_AUTOHSCROLL | NOT WS_BORDER,WS_EX_STATICEDGE
PUSHBUTTON "Generate",IDC_GENERATE,290,7,50,14
LTEXT "Provider:",IDC_STATIC,7,76,30,8
COMBOBOX IDC_PROVIDER,51,73,279,75,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Copy From...",IDC_COPYFROM,353,7,64,14
END
@@ -397,6 +405,7 @@ BEGIN
VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL, NOINVERT
VK_DELETE, ID_EDIT_CUT, VIRTKEY, SHIFT, NOINVERT
"X", ID_EDIT_CUT, VIRTKEY, CONTROL, NOINVERT
VK_DELETE, ID_EDIT_DELETE, VIRTKEY, NOINVERT
"V", ID_EDIT_PASTE, VIRTKEY, CONTROL, NOINVERT
VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT, NOINVERT
VK_RETURN, ID_EDIT_PROPERTIES, VIRTKEY, ALT, NOINVERT
@@ -408,8 +417,9 @@ BEGIN
"S", ID_FILE_SAVE, VIRTKEY, CONTROL, NOINVERT
VK_F6, ID_NEXT_PANE, VIRTKEY, NOINVERT
VK_F6, ID_PREV_PANE, VIRTKEY, SHIFT, NOINVERT
VK_DELETE, ID_EDIT_DELETE, VIRTKEY, NOINVERT
VK_F5, ID_VIEW_REFRESH, VIRTKEY, NOINVERT
"F", ID_EDIT_FIND, VIRTKEY, CONTROL, NOINVERT
VK_F3, ID_EDIT_FINDNEXT, VIRTKEY, NOINVERT
END
@@ -608,6 +618,7 @@ BEGIN
ID_VIEW_PROVIDERCONTEXTS "\nProvider Contexts"
ID_VIEW_NETWORKEVENTS "\nNetwork Events"
ID_NEW_FILTER "\nNew Filter"
ID_EDIT_FINDNEXT "\nFind Next"
END
#endif // English (United States) resources
+3
View File
@@ -296,6 +296,9 @@
<Image Include="res\FilteringRefresh.ico" />
<Image Include="res\Filteringrestricted.ico" />
<Image Include="res\FilteringRightArrow.ico" />
<Image Include="res\Find-next.ico" />
<Image Include="res\Find-prev.ico" />
<Image Include="res\Find.ico" />
<Image Include="res\layers.ico" />
<Image Include="res\Object.ico" />
<Image Include="res\Open.ico" />
+9
View File
@@ -255,6 +255,15 @@
<Image Include="res\Save.ico">
<Filter>Resource Files\Icons</Filter>
</Image>
<Image Include="res\Find.ico">
<Filter>Resource Files\Icons</Filter>
</Image>
<Image Include="res\Find-next.ico">
<Filter>Resource Files\Icons</Filter>
</Image>
<Image Include="res\Find-prev.ico">
<Filter>Resource Files\Icons</Filter>
</Image>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

+10 -4
View File
@@ -40,8 +40,11 @@
#define IDI_EVENT 235
#define IDD_NEWFILTER 236
#define IDI_SAVE 238
#define IDI_ICON2 239
#define IDI_OPEN 239
#define IDI_FIND 240
#define IDI_FIND_NEXT 241
#define IDI_ICON3 242
#define IDI_FIND_PREV 242
#define IDC_VERSION 1000
#define IDC_COPYRIGHT 1001
#define IDC_KEY 1001
@@ -66,6 +69,7 @@
#define IDC_FLAGS 1017
#define IDC_TABS 1018
#define IDC_GENERATE 1019
#define IDC_COPYFROM 1021
#define ID_WINDOW_CLOSE 32772
#define ID_WINDOW_CLOSE_ALL 32773
#define ID_OPTIONS_ALWAYSONTOP 32775
@@ -87,14 +91,16 @@
#define ID_NEW_FILTER 32791
#define ID_NEW_SIMPLEFILTER 32795
#define ID_NEW_PROVIDER 32796
#define ID_EDIT_FIND32797 32797
#define ID_EDIT_FINDNEXT 32798
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 240
#define _APS_NEXT_COMMAND_VALUE 32797
#define _APS_NEXT_CONTROL_VALUE 1021
#define _APS_NEXT_RESOURCE_VALUE 243
#define _APS_NEXT_COMMAND_VALUE 32801
#define _APS_NEXT_CONTROL_VALUE 1022
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
+1 -1
View File
@@ -3,7 +3,7 @@
#include "pch.h"
#include "..\WFPCore\WFPEngine.h"
#include "..\WFPCore\Enumerators.h"
#include "..\WFPCore\WFPEnumerators.h"
#pragma comment(lib, "Fwpuclnt.lib")
#pragma comment(lib, "Shlwapi.lib")