2025-11-28 00:35:46 +09:00

79 lines
2.5 KiB
C

// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Copyright (c) Microsoft Corporation. All rights reserved
#include "NetCostEventSink.h"
//
// Presents an interactive menu to the user and returns the user's choice
//
int GetUserChoice();
//
// Evaluates user input and takes the requested action
//Takes the user option choice as the input
//
void EvaluateUserChoice(_In_ int userchoice);
//
//Registers for machine cost change notifications, and waits for cost change events
//
void RegisterForMachineCostChangeNotifications();
//
//Registers for destination cost change notifications, and waits for cost change events
//
void RegisterForDestinationCostChangeNotifications();
//
//Registers for connection cost change notifications, and waits for cost change events
//
void RegisterForConnectionCostChangeNotifications();
//
//Gets machine cost and data plan status, and displays to the user, along with suggested appropriate actions based on the
//retrieved cost and data plan status values.
//
void GetMachineCostandDataPlanStatus();
//
//Gets destination based cost and data plan status, and displays to the user, along with suggested appropriate actions based on the
//retrieved cost and data plan status values.
//
void GetDestinationCostandDataPlanStatus();
//
//Gets connection cost and data plan status, and displays to the user, along with suggested appropriate actions based on the
//retrieved cost and data plan status values.
//
void GetConnectionCostandDataPlanStatus();
//
//Unregiser for machine wide notifications, and releases any handles used to release the memory
//
void UnRegisterForMachineCostChangeNotifications();
//
//Unregiser for destination based notifications, and releases any handles used to release the memory
//
void UnRegisterForDestinationCostChangeNotifications();
//
//Unregiser for connection cost notifications, and releases any handles used to release the memory
//
void UnRegisterForConnectionCostChangeNotifications();
//
// Description: Cancels registration for notifications, quits the thread and closes the thread handle
//
void FreeMemoryAndExit();
//
// Takes cost and data plan status as input, and suggests appropriate actions to the user based on the
// cost and data plan status values.
//
void CostBasedSuggestions(_In_ DWORD cost, _In_ const NLM_DATAPLAN_STATUS *pDataPlanStatus);