On Feb 14, 2007, at 9:50 PM, maxclass@... wrote: > > In some of the code posted there are some lines as follows: > > pagePMRect.left = 0 > pagePMRect.top = 0 > pagePMRect.right = 594 > pagePMRect.bottom = 990 > > This all seems perfectly normal and straight forward. What is NOT > straight forward is this. > > If the Print record is in fact opaque and we can't see into it or > modify it directly without using the PM's FN's, how or where do we > even know that there are fields in that record that even vaguely > resemble those shown above? Max, pagePMRect is defined as a PMRect. A PMRect is NOT an opaque structure but just a convenient definition (found in Tlbx Printing.incl - using the editor's FIND dialog) dim as PMRect pagePMRect > Is there is something showing what the fields of the print record > are or where they can be found? For Apple's opaque structures no, but not all structures are Apple's. It will take investigation to uncover the answers. > > I have scoured the documentation from Apple on regarding the Print > Manager and could not find a single thing that even remotely showed > or mentioned any of the fields therein. That said, how can we > possible access anything we don't even know is there in the first > place. As RP mentioned, there are getter and setter functions for all opaque structures. The trick is understanding which ones to use and what they provide. > > Finally, in Robert's code the variable [gFBPrintSession] is used. > This appears to be something Staz invented and has kept hidden > somewhere in the runtime. Its use is obscure clearly. How on earth > are the rest of us (outside of the inner circle) supposed to know > that such a variable exist or where it came from or how to use it? There are many global vars that are useful (another is one that always contains the OS release)but buried in the runtime. In many cases they are NOT documented but they are NOT hidden. That is how they were found. Of course, some folks (like RP) have been through the runtimes in detail and found/created them (RP wrote the Appearance runtime--thanks RP, saved our collective butts again). Also, there is no "inner circle" per se. In other words there is no secret group. All coding knowledge is shared (look at FBtoC - here is a private project where the code is available to all FBers to peruse) with everyone on the list. The beta list is private but for the most part the issues are related to issues in the beta of FB and not how to do standard FB coding. Brian S.