#pragma once

#include "resource.h"
#include "control_ids.h"

#include <LiftoffAds.h>
#include <EventArguments\AdLoadCallback.h>
#include <EventArguments\InitializationCallback.h>
#include <EventArguments\AdLoadEventArgs.h>
#include <EventArguments\AdPlayCallback.h>

#define MAX_LOADSTRING 100

extern LiftoffAds* g_sdkInstance; // Declaration only, no initialization
extern std::vector<PlacementConfigFromServer> g_placements;

extern HINSTANCE hInst;                                // current instance
extern HWND hMainWnd;
extern HWND hTab, hTabPages[NUM_TABS];
// Tab 1
extern HWND hLabelAppId, hEditAppId, hButtonInitialize, hButtonLoad, hButtonPlay, hButtonPlayInNewWindow, hPlacementsListBox, hButtonShowDataInExplorer;
// Tab 2 ("Options")
extern HWND hCheckBoxDisableASHWID;
extern HWND hLabelIncentivizedTitle, hEditIncentivizedTitle, hLabelIncentivizedBody, hEditIncentivizedBody, hLabelIncentivizedClose, hEditIncentivizedClose, hLabelIncentivizedContinue, hEditIncentivizedContinue;
extern HWND hLabelPositionX, hEditPositionX, hLabelPositionY, hEditPositionY;

// Tab 3 ("Debug")
extern HWND hProxyCheckbox, hProxyAddressLabel, hProxyAddressEdit, hProxyPortLabel, hProxyPortEdit, hWebView2DebugCheckbox;

extern HWND hEdits[2], hLabels[2], hCheckBoxes[2], hMultiLineEdit;

extern WCHAR szOtherWindowClass[MAX_LOADSTRING];