@@ -120,9 +120,9 @@ struct _cups_dnssd_query_s // DNS-SD query request
120120
121121#elif _WIN32
122122 WCHAR fullname [256 ]; // Query full name as a UTF-16 string
123- DNS_QUERY_REQUEST req ; // Query request
123+ MDNS_QUERY_REQUEST req ; // Query request
124+ MDNS_QUERY_HANDLE handle ; // Query handle
124125 DNS_QUERY_RESULT res ; // Query result
125- DNS_QUERY_CANCEL cancel ; // Cancellation structure
126126
127127#else // HAVE_AVAHI
128128 AvahiRecordBrowser * browser ; // Browser
@@ -209,7 +209,7 @@ static cups_dnssd_flags_t mdns_to_cups(DNSServiceFlags flags, DNSServiceErrorTyp
209209
210210#elif _WIN32
211211static void win32_browse_cb (DWORD status , PVOID context , PDNS_RECORD record );
212- static void win32_query_cb (PVOID context , PDNS_QUERY_RESULT result );
212+ static void win32_query_cb (PVOID context , PMDNS_QUERY_HANDLE handle , PDNS_QUERY_RESULT result );
213213static void win32_resolve_cb (DWORD status , PVOID context , PDNS_SERVICE_INSTANCE instance );
214214static void win32_service_cb (DWORD status , PVOID context , PDNS_SERVICE_INSTANCE instance );
215215static void win32_utf8cpy (char * dst , const WCHAR * src , size_t dstsize );
@@ -1050,26 +1050,20 @@ cupsDNSSDQueryNew(
10501050
10511051 win32_wstrcpy (query -> fullname , fullname , sizeof (query -> fullname ));
10521052
1053- query -> req .Version = DNS_QUERY_REQUEST_VERSION1 ;
1054- query -> req .InterfaceIndex = if_index ;
1055- query -> req .QueryName = query -> fullname ;
1056- query -> req .QueryType = rrtype ;
1057- query -> req .pDnsServerList = NULL ;
1058- query -> req .pQueryCompletionCallback = win32_query_cb ;
1059- query -> req .pQueryContext = query ;
1053+ query -> req .Version = DNS_QUERY_REQUEST_VERSION1 ;
1054+ query -> req .InterfaceIndex = if_index ;
1055+ query -> req .Query = query -> fullname ;
1056+ query -> req .QueryType = rrtype ;
1057+ query -> req .pQueryCallback = win32_query_cb ;
1058+ query -> req .pQueryContext = query ;
10601059
1061- query -> res .Version = DNS_QUERY_REQUEST_VERSION1 ;
1062-
1063- // TODO: FIgure out why mDNS queries can't work...
1064- # if 0
1065- if ((status = DnsQueryEx (& query -> req , & query -> res , & query -> cancel )) != DNS_REQUEST_PENDING )
1060+ if ((status = DnsStartMulticastQuery (& query -> req , & query -> handle )) != ERROR_SUCCESS )
10661061 {
1067- report_error (dnssd , "Unable to create DNS-SD query request: %d" , status );
1062+ report_error (dnssd , "Unable to start mDNS query request: %d" , status );
10681063 free (query );
10691064 query = NULL ;
10701065 goto done ;
10711066 }
1072- # endif // 0
10731067
10741068#else // HAVE_AVAHI
10751069 if (!dnssd -> in_callback )
@@ -1983,7 +1977,7 @@ delete_query(
19831977 DNSServiceRefDeallocate (query -> ref );
19841978
19851979#elif _WIN32
1986- DnsCancelQuery (& query -> cancel );
1980+ DnsStopMulticastQuery (& query -> handle );
19871981
19881982#else // HAVE_AVAHI
19891983 avahi_record_browser_free (query -> browser );
@@ -2498,8 +2492,9 @@ win32_browse_cb(
24982492
24992493static void
25002494win32_query_cb (
2501- PVOID context , // I - Pointer to query
2502- PDNS_QUERY_RESULT result ) // I - Query result
2495+ PVOID context , // I - Pointer to query
2496+ PMDNS_QUERY_HANDLE handle , // I - Query handle
2497+ PDNS_QUERY_RESULT result ) // I - Query result
25032498{
25042499 cups_dnssd_query_t * query = (cups_dnssd_query_t * )context ;
25052500 // Query
0 commit comments