xref: /aosp_15_r20/external/mdnsresponder/mDNSWindows/ControlPanel/ConfigPropertySheet.h (revision 48a54d368dc4fa860885eef7b70b6c53499e7c25)
1*48a54d36SAndroid Build Coastguard Worker /* -*- Mode: C; tab-width: 4 -*-
2*48a54d36SAndroid Build Coastguard Worker  *
3*48a54d36SAndroid Build Coastguard Worker  * Copyright (c) 2002-2004 Apple Computer, Inc. All rights reserved.
4*48a54d36SAndroid Build Coastguard Worker  *
5*48a54d36SAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
6*48a54d36SAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
7*48a54d36SAndroid Build Coastguard Worker  * You may obtain a copy of the License at
8*48a54d36SAndroid Build Coastguard Worker  *
9*48a54d36SAndroid Build Coastguard Worker  *     http://www.apache.org/licenses/LICENSE-2.0
10*48a54d36SAndroid Build Coastguard Worker  *
11*48a54d36SAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
12*48a54d36SAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
13*48a54d36SAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*48a54d36SAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
15*48a54d36SAndroid Build Coastguard Worker  * limitations under the License.
16*48a54d36SAndroid Build Coastguard Worker  */
17*48a54d36SAndroid Build Coastguard Worker 
18*48a54d36SAndroid Build Coastguard Worker #ifndef _ConfigPropertySheet_h
19*48a54d36SAndroid Build Coastguard Worker #define _ConfigPropertySheet_h
20*48a54d36SAndroid Build Coastguard Worker 
21*48a54d36SAndroid Build Coastguard Worker #include "stdafx.h"
22*48a54d36SAndroid Build Coastguard Worker #include "ServicesPage.h"
23*48a54d36SAndroid Build Coastguard Worker #include "RegistrationPage.h"
24*48a54d36SAndroid Build Coastguard Worker #include "BrowsingPage.h"
25*48a54d36SAndroid Build Coastguard Worker 
26*48a54d36SAndroid Build Coastguard Worker #include <RegNames.h>
27*48a54d36SAndroid Build Coastguard Worker #include <dns_sd.h>
28*48a54d36SAndroid Build Coastguard Worker #include <list>
29*48a54d36SAndroid Build Coastguard Worker 
30*48a54d36SAndroid Build Coastguard Worker 
31*48a54d36SAndroid Build Coastguard Worker //---------------------------------------------------------------------------------------------------------------------------
32*48a54d36SAndroid Build Coastguard Worker //	CConfigPropertySheet
33*48a54d36SAndroid Build Coastguard Worker //---------------------------------------------------------------------------------------------------------------------------
34*48a54d36SAndroid Build Coastguard Worker 
35*48a54d36SAndroid Build Coastguard Worker class CConfigPropertySheet : public CPropertySheet
36*48a54d36SAndroid Build Coastguard Worker {
37*48a54d36SAndroid Build Coastguard Worker public:
38*48a54d36SAndroid Build Coastguard Worker 
39*48a54d36SAndroid Build Coastguard Worker 	CConfigPropertySheet();
40*48a54d36SAndroid Build Coastguard Worker 	virtual ~CConfigPropertySheet();
41*48a54d36SAndroid Build Coastguard Worker 
42*48a54d36SAndroid Build Coastguard Worker 	typedef std::list<CString> StringList;
43*48a54d36SAndroid Build Coastguard Worker 
44*48a54d36SAndroid Build Coastguard Worker 	StringList	m_browseDomains;
45*48a54d36SAndroid Build Coastguard Worker 
46*48a54d36SAndroid Build Coastguard Worker protected:
47*48a54d36SAndroid Build Coastguard Worker 
48*48a54d36SAndroid Build Coastguard Worker 	CServicesPage		m_firstPage;
49*48a54d36SAndroid Build Coastguard Worker 	CRegistrationPage	m_secondPage;
50*48a54d36SAndroid Build Coastguard Worker 	CBrowsingPage		m_thirdPage;
51*48a54d36SAndroid Build Coastguard Worker 
52*48a54d36SAndroid Build Coastguard Worker 	//{{AFX_VIRTUAL(CConfigPropertySheet)
53*48a54d36SAndroid Build Coastguard Worker 	//}}AFX_VIRTUAL
54*48a54d36SAndroid Build Coastguard Worker 
55*48a54d36SAndroid Build Coastguard Worker 	DECLARE_DYNCREATE(CConfigPropertySheet)
56*48a54d36SAndroid Build Coastguard Worker 
57*48a54d36SAndroid Build Coastguard Worker 	//{{AFX_MSG(CConfigPropertySheet)
58*48a54d36SAndroid Build Coastguard Worker 	//}}AFX_MSG
59*48a54d36SAndroid Build Coastguard Worker 	DECLARE_MESSAGE_MAP()
60*48a54d36SAndroid Build Coastguard Worker 
61*48a54d36SAndroid Build Coastguard Worker 	afx_msg BOOL	OnInitDialog();
62*48a54d36SAndroid Build Coastguard Worker 	afx_msg BOOL	OnCommand( WPARAM wParam, LPARAM lParam );
63*48a54d36SAndroid Build Coastguard Worker 	afx_msg LRESULT	OnDataReady( WPARAM inWParam, LPARAM inLParam );
64*48a54d36SAndroid Build Coastguard Worker 	afx_msg LRESULT	OnRegistryChanged( WPARAM inWParam, LPARAM inLParam );
65*48a54d36SAndroid Build Coastguard Worker 	void			OnEndDialog();
66*48a54d36SAndroid Build Coastguard Worker 
67*48a54d36SAndroid Build Coastguard Worker private:
68*48a54d36SAndroid Build Coastguard Worker 
69*48a54d36SAndroid Build Coastguard Worker 	OSStatus
70*48a54d36SAndroid Build Coastguard Worker 	SetupBrowsing();
71*48a54d36SAndroid Build Coastguard Worker 
72*48a54d36SAndroid Build Coastguard Worker 	OSStatus
73*48a54d36SAndroid Build Coastguard Worker 	TearDownBrowsing();
74*48a54d36SAndroid Build Coastguard Worker 
75*48a54d36SAndroid Build Coastguard Worker 	OSStatus
76*48a54d36SAndroid Build Coastguard Worker 	DecodeDomainName( const char * raw, CString & decoded );
77*48a54d36SAndroid Build Coastguard Worker 
78*48a54d36SAndroid Build Coastguard Worker 	static void DNSSD_API
79*48a54d36SAndroid Build Coastguard Worker 	BrowseDomainsReply
80*48a54d36SAndroid Build Coastguard Worker 				(
81*48a54d36SAndroid Build Coastguard Worker 				DNSServiceRef			sdRef,
82*48a54d36SAndroid Build Coastguard Worker 				DNSServiceFlags			flags,
83*48a54d36SAndroid Build Coastguard Worker 				uint32_t				interfaceIndex,
84*48a54d36SAndroid Build Coastguard Worker 				DNSServiceErrorType		errorCode,
85*48a54d36SAndroid Build Coastguard Worker 				const char			*	replyDomain,
86*48a54d36SAndroid Build Coastguard Worker 				void				*	context
87*48a54d36SAndroid Build Coastguard Worker 				);
88*48a54d36SAndroid Build Coastguard Worker 
89*48a54d36SAndroid Build Coastguard Worker 	// This thread will watch for registry changes
90*48a54d36SAndroid Build Coastguard Worker 
91*48a54d36SAndroid Build Coastguard Worker 	static unsigned WINAPI
92*48a54d36SAndroid Build Coastguard Worker 	WatchRegistry
93*48a54d36SAndroid Build Coastguard Worker 				(
94*48a54d36SAndroid Build Coastguard Worker 				LPVOID inParam
95*48a54d36SAndroid Build Coastguard Worker 				);
96*48a54d36SAndroid Build Coastguard Worker 
97*48a54d36SAndroid Build Coastguard Worker 	HKEY				m_statusKey;
98*48a54d36SAndroid Build Coastguard Worker 	HANDLE				m_thread;
99*48a54d36SAndroid Build Coastguard Worker 	HANDLE				m_threadExited;
100*48a54d36SAndroid Build Coastguard Worker 	DNSServiceRef		m_browseDomainsRef;
101*48a54d36SAndroid Build Coastguard Worker 	CRITICAL_SECTION	m_lock;
102*48a54d36SAndroid Build Coastguard Worker };
103*48a54d36SAndroid Build Coastguard Worker 
104*48a54d36SAndroid Build Coastguard Worker 
105*48a54d36SAndroid Build Coastguard Worker #endif
106