There is no guide that I know of.
Here are the main points.
Windows developers are not expected to support Wine at all. If there's
a problem with a program running in Wine that does not exist in
Windows, it's usually Wine's fault.
If you feel so inclined, you can test your program on Wine and file
bugs for things that are broken or missing in Wine.
If you want to work around bugs, we prefer that you do it by switching
to a method that works on both Wine and Windows, or that you activate
the work-around only when you detect the corresponding bug. That way,
everything can work the same as Windows when the bug is fixed.
The nature of Wine is that no matter what you do, things could break
at any time as Wine develops. Maybe you'll be able to work around the
bugs as they come up, or get them fixed quickly, and maybe you won't.
Maybe you won't even find out until months after it breaks. So while
it's nice to make things easy for Wine users, it's probably not a good
idea to promise support for Wine.
You can solve that problem, but it means using Wine to provide a
version of your program for Linux (or Mac). This isn't terribly
difficult, but it may be more effort (or expense) than you want to put
into it.
If you're thinking of trying to build your program with winelib, don't
bother. The only important difference between a winelib dll/exe and a
windows dll/exe is that the winelib code can bypass the Windows API
layer and access native APIs directly. Even if you want to do this,
it's best to build a single dll or exe specifically for this and use
the windows build of everything else.