From: William H. S. <whs...@ce...> - 2006-12-20 18:32:47
|
HWND_MESSAGE requires Windows 2000 or later. I don't recall where the documentation is that specifies this requirement. On my system, it's defined in winuser.h. ------------------------------- Hank Schultz Cedrus Corporation http://www.cedrus.com/ On Dec 19, 2006, at 10:58 PM, Ishan Arora wrote: > i am having trouble compiling servicediscoverytaskbase.cpp in > visual studio > servicediscoverytaskbase.cpp(164) : error C2065: 'HWND_MESSAGE' : > undeclared identifier > > On 12/20/06, Ishan Arora <ish...@us...> wrote: > Thanks. The sample is of great help > > > On 12/20/06, William H. Schultz < whs...@ce...> wrote: > I see. That makes more sense--that it would be source-code > compatible, similar to WINE. That would relieve the effort of > implementation quite a bit. > > While it may be a while before I get around to writing serious > documentation, I can at least go ahead and put some effort into > squeezing this into the existing socket sample. That should help > get you up and running. > > > ------------------------------- > Hank Schultz > Cedrus Corporation > http://www.cedrus.com / > > > On Dec 18, 2006, at 7:01 PM, Ishan Arora wrote: > >> William, >> What I insisted in last post was " Avahi also implements binary >> compatibility libraries that emulate Bonjour and Howl". I guess I >> should have used a different font :) >> Since Avahi sounds more native and also emulates Bonjour in >> different binaries, you wont have to modify your code (much). >> Moreover it comes installed with most linux; we don't have much >> reason to give a Linux user the trouble of installing Bonjour >> >> >> On 12/19/06, William H. Schultz < whs...@ce... > wrote: >> It isn't visible straight from wxCode because I'm using wxCode's >> subversion repository instead of the CVS repository. This allowed >> me to point to it as an external source within our own internal >> project's svn repo. I also haven't packaged up a release, as I >> have no documentation or anything to help people build a project. >> >> About Avahi, if that's what is commonly shipping on Linux systems, >> then that would probably be the better route to take on those >> platforms. As currently implemented, wxDNSSD relies on Apple's >> implementation. I imagine Avahi wouldn't be particularly >> difficult to implement into my existing framework. I suspect the >> structure will likely be very similar (if not identical), but a >> lot of the code I've written probably won't apply. I have a >> suspicion it would wind up being a parallel implementation, like >> much of wxWidgets' cross-platform support. >> >> It may not be a bad idea to see if my implementation works with >> Apple's Bonjour on Linux. If it does, you could still do an Avahi >> implementation, but this would make it much easier to ensure that >> software written against wxDNSSD will work the same regardless of >> the backend. (just an idea) >> >> >> Anyway, I committed a change to servicediscoverytaskbase.h a few >> minutes ago, so there should be a little more information there on >> what you need to know to get going. It's getting late, so I'm >> headed home for the evening. >> >> >> We should probably continue this discussion on the wxCode mailing >> list. https://lists.sourceforge.net/lists/listinfo/wxcode-users >> I figured I would mention this before starting to CC the list (in >> case you have privacy concerns about anything you've already >> mentioned). >> >> >> ------------------------------- >> Hank Schultz >> Cedrus Corporation >> http://www.cedrus.com / >> >> >> On Dec 18, 2006, at 5:54 PM, Ishan Arora wrote: >> >>> William, >>> Why is this project not accessible straight from wxCode? It would >>> be more visible to the interested that way. My purpose is to >>> create an open source network messenger. I am thinking of using >>> Bonjour for the messenger to know the presence of other instances >>> of the messenger on the network. Is there a better way you wish >>> to recommend? >>> >>> I just came across this on wikipedia.org >>> Avahi is a Zeroconf implementation for Linux and BSDs. It >>> implements IPv4LL, mDNS and DNS-SD. It is part of every major and >>> many minor Linux distributions, and is installed by default on >>> e.g. Ubuntu version 6.10. If run in conjunction with nss-mdns it >>> also offers host name resolution. >>> >>> Avahi also implements binary compatibility libraries that emulate >>> Bonjour and Howl, so software made to use those implementations >>> can also utilize Avahi through the emulation interfaces. >>> >>> >>> >>> On 12/19/06, William H. Schultz < whs...@ce...> wrote: >>> Thanks! It was also just the thing I needed. Of course, since >>> no one had published a good implementation, I did the best I >>> could and put it out there for everyone else. The key things >>> missing are documentation and support for text records. I'm >>> working right now on adding a short blurb to the >>> servicediscoverytaskbase.h header file to give a quick overview >>> of how stuff works. I hope to have this committed within the >>> next half hour. >>> >>> >>> Hank Schultz >>> >>> <cedrus_logo_w140.gif> >>> >>> http://www.cedrus.com/ >>> >>> >>> On Dec 18, 2006, at 5:34 PM, Ishan Arora wrote: >>> >>>> William, >>>> I guess I am the first one to be interested because the project >>>> is relatively new and alpha version :) >>>> Anyways I am finding Bonjour just the right thing for my >>>> project, so I owe you a big "Thank You!!!" for helping me use it >>>> in wxWidgets. I'll try to contribute to your side project ;) >>>> Thank you >>>> >>>> >>>> On 12/19/06, William H. Schultz < whs...@ce...> wrote: >>>> It has not been tested. There is a mechanism implemented to >>>> work based on the select() type of receiving events, which >>>> should theoretically be compatible with Linux. I tried to use >>>> this but had issues. I don't recall if I tried it on both OS X >>>> and Windows, but I think I may have. This would rely on idle >>>> events. I also tried a threaded implementation, allowing the >>>> bonjour calls to block. I don't recall precisely why I'm not >>>> using this method myself. >>>> >>>> There are two methods implemented that could potentially work on >>>> Linux. Unfortunately, I know I had some kind of issues with >>>> both of these methods on either Windows or Mac OS X, so you may >>>> have your work cut out for you to get it running on Linux. >>>> There is the slim possibility that it will work pretty easily >>>> for you--that is, the methods are implemented--but I wouldn't >>>> count on it. >>>> >>>> In the end, I had a hard time getting everything to work right >>>> on Windows, so it could just be that I didn't devote enough >>>> effort into tweaking things for the more globally available >>>> methods. >>>> >>>> Everything you need to make this work should be in >>>> servicediscoverytaskbase.h and .cpp. This is where the bonjour >>>> tasks get set up. Since they all work mostly the same way, all >>>> of the code is in here. One other place that may need >>>> modification is wxServiceDiscoveryResult::SetNetworkInterface(), >>>> which takes an integer index for the network interface and >>>> retrieves the name. On Mac OS X, this is en0, en1, fw0, etc... >>>> If the Mac OS X code for this doesn't work under Linux, it's >>>> just a matter of finding the line or two of code that takes this >>>> index and turns it into a name. >>>> >>>> If you're willing to look over Apple's DNS SD documentation, >>>> then the functionality of the code should be relatively clear. >>>> >>>> I have a vague recollection that the threaded implementation was >>>> a lot more reliable than the idle-event-initiated-select() >>>> implementation (though I think I had some issues with starting >>>> and stopping tasks). You are probably better off starting down >>>> this route. >>>> >>>> >>>> I'm planning on rewriting the socket sample to use this, but it >>>> may be a bit before I get around to it. >>>> >>>> >>>> Oh, and in case you didn't already know, Bonjour doesn't do much >>>> of anything for actual network communication. You're on your >>>> own to set up a server and or client. Bonjour just tells you >>>> what claims to be available (dns name and port... you have to >>>> get the IP yourself, but that should be implemented in my code >>>> in wxServiceDiscoveryResult::SetTarget). >>>> >>>> There are a lot of calls to wxLogDebug() to keep you informed as >>>> to what is going on. >>>> >>>> You're the first person to contact me to say, "hey, I'm >>>> interested!" Sorry about the disarray. Our potential use for >>>> this is way out in the future, so it's a low priority side >>>> project, relative to tech support and fixing bugs in shipping >>>> products. ;) >>>> >>>> >>>> Hank Schultz >>>> >>>> <cedrus_logo_w140.gif> >>>> >>>> http://www.cedrus.com/ >>>> >>>> >>>> On Dec 18, 2006, at 4:50 PM, Ishan Arora wrote: >>>> >>>>> William, >>>>> Thank you for your response. I am really thankful. Does wxDNSSD >>>>> also work on linux, even if not tested? >>>>> >>>>> On 12/19/06, William H. Schultz < whs...@ce...> wrote: >>>>> Ishan, >>>>> >>>>> Yes, I have. So far, it seems to be working pretty well for me >>>>> internally. I haven't yet inflicted it on anyone else in my >>>>> company, and especially not any users yet. You can get the >>>>> source code here: >>>>> >>>>> https://svn.sourceforge.net/svnroot/wxcode/trunk/wxCode/ >>>>> components/servicediscovery/ (works in a web browser or >>>>> subversion client) >>>>> >>>>> I don't have anything to help build it yet. I'm currently >>>>> including the source files as if they were part of my own >>>>> project. In include/wx/servicediscoverydef.h, this code is >>>>> configured to only build in debug mode, so you will likely want >>>>> to modify this file. >>>>> >>>>> There is one Bonjour feature that is missing, and that's the >>>>> text records. At the moment, I have no use for it, so I >>>>> haven't implemented it. Everything else is working fine for me >>>>> on Windows and Mac OS X. >>>>> >>>>> I'm sorry that I haven't yet put together a sample to show off >>>>> how to use this functionality, but it's relatively simple. >>>>> There are four primary data types: browser, resolver, service, >>>>> and result. If you have something to announce, you create a >>>>> service and then start it. If you want to find something, you >>>>> create a service but *don't* start it. You provide this >>>>> service to the browser. The browser returns results via >>>>> events. These results don't have full IP information, so you >>>>> need to resolve your results. The same result objects are used >>>>> for both, and an object array has been defined in >>>>> servicediscoveryresult.h to make it easier to keep up with the >>>>> results. >>>>> >>>>> An important detail to remember is that all bonjour tasks must >>>>> be started and stopped for anything to happen (browser, >>>>> resolver, and service are all tasks). If you don't start your >>>>> service, it won't be visible (this is what you want if you are >>>>> looking for results but not if you have a service to offer). >>>>> If you don't start the browser, you will never get any >>>>> results. The browser should stay active until you no longer >>>>> need results. The resolver can probably be deactivated after >>>>> you get your IP information. >>>>> >>>>> While bonjour supports IPv6, wxWidgets doesn't, so everything >>>>> is done with IPv4. >>>>> >>>>> >>>>> I hope this is enough to get you started! >>>>> >>>>> >>>>> Hank Schultz >>>>> >>>>> <cedrus_logo_w140.gif> >>>>> >>>>> http://www.cedrus.com/ >>>>> >>>>> >>>>> On Dec 18, 2006, at 3:37 PM, Ishan Arora wrote: >>>>> >>>>>> hi >>>>>> you seem to have created a wrapper class for Apple's Bonjour. >>>>>> it seems to be very helpful from the description, but i am >>>>>> unable to access it. can you please check it. if it takes time >>>>>> to put them for download then please email me the files. >>>>>> thank you >>>>> >>>>> >>>> >>>> >>> >>> >> >> >> > > > > |