![]()  | 
![]()  | 
![]()  | 
![]()  | 
Extract data from a print context
void * PpGetPC( PpPrintContext_t *pc,
                     int member,
                     const void ** const data);
ph
Use this function to query the attributes of a print context.
![]()  | 
Don't extract values directly from the data structure. Your application might not work if the structure changes in the future. | 
Use the following data types when getting the value of the members of the print context:
| Member | Data | 
|---|---|
| Pp_PC_COLLATING_MODE | Address of a char * ( value ) | 
| Pp_PC_COLOR_MODE | Address of a char * ( value ) | 
| Pp_PC_CONTROL | Address of a PpPCControl_t * | 
| Pp_PC_COPIES | Address of a char * ( value ) | 
| Pp_PC_DATE | Address of a char * (string) | 
| Pp_PC_DEVICE | Address of a char * (string) | 
| Pp_PC_DITHERING | Address of a char * ( value ) | 
| Pp_PC_DO_PREVIEW | Address of a char * ( value ) | 
| Pp_PC_DRIVER | Address of a char * (string) | 
| Pp_PC_DUPLEX | Address of a char * ( value ) | 
| Pp_PC_FILENAME | Address of a char * (string) | 
| Pp_PC_INKTYPE | Address of a char * ( value ) | 
| Pp_PC_INTENSITY | Address of a unsigned long * | 
| Pp_PC_JOB_NAME | Address of a char * (string) | 
| Pp_PC_MARGINS | Address of a PhRect_t * | 
| Pp_PC_MAX_DEST_SIZE | Address of a unsigned long | 
| Pp_PC_NAME | Address of a char * (string) | 
| Pp_PC_NONPRINT_MARGINS | Address of a PhRect_t * | 
| Pp_PC_ORIENTATION | Address of a char * ( value ) | 
| Pp_PC_PAGE_NUM | Address of a unsigned long | 
| Pp_PC_PAGE_RANGE | Address of a PpPageRange_t * | 
| Pp_PC_PAPER_SIZE | Address of a PhDim_t * | 
| Pp_PC_PAPER_SOURCE | Address of a char * ( value ) | 
| Pp_PC_PAPER_TYPE | Address of a char * ( value ) | 
| Pp_PC_PREVIEW_APP | Address of a char * (string) | 
| Pp_PC_PRINTER_RESOLUTION | Address of a PhDim_t * | 
| Pp_PC_PROP_APP | Address of a char * (string) | 
| Pp_PC_REVERSED | Address of a char ( value ) | 
| Pp_PC_SCALE | Address of a PhPoint_t * | 
| Pp_PC_SOURCE_COLORS | Address of a unsigned long * | 
| Pp_PC_SOURCE_OFFSET | Address of a PhPoint_t * | 
| Pp_PC_SOURCE_RESOLUTION | Address of a PhDim_t * | 
| Pp_PC_SOURCE_SIZE | Address of a PhDim_t * | 
| Pp_PC_USER_ID | Address of a char * (string) | 
A pointer to the requested data, or NULL if an unrecognized member was specified.
int get_it( PtWidget_t *widget, ApInfo_t *apinfo,
            PtCallbackInfo_t *cbinfo )
{
    PhDim_t *dim;
    void    *pc_data;
    PpPrintContext_t *pc;
    /* Eliminate 'unreferenced' warnings */
    widget = widget, apinfo = apinfo, cbinfo = cbinfo;
    pc = PpCreatePC();
    // Pop up the standard print dialog to fill in the PC
    PtPrintSelection( NULL, NULL,
                      "Select Printer", pc, 0 );
    // Get some stuff from the pc
    // A string:
    PpGetPC( pc, Pp_PC_NAME, &pc_data );
    printf( "printer: %s\n", (char *)pc_data );
    // A structure ( PhDim_t ):
    PpGetPC( pc, Pp_PC_PAPER_SIZE, &pc_data );
    printf( "paper height: %d, width: %d\n",
        ((PhDim_t *)pc_data)->h, ((PhDim_t *)pc_data)->w );
    // A long value:
    PpGetPC( pc, Pp_PC_INTENSITY, &pc_data );
    printf( "intensity: %ld\n", *(long *)pc_data );
    // A number stored in a char:
    PpGetPC( pc, Pp_PC_COPIES, &pc_data );
    printf( "copies : %d\n", *(char *)pc_data );
    // Of course, the correct type can be used to
    // get the member:
    PpGetPC( pc, Pp_PC_PAPER_SIZE, &dim );
    printf( "paper height: %d, width: %d\n", dim->h, dim->w );
    PpReleasePC( pc );
    return Pt_CONTINUE;
}
Photon
| Safety: | |
|---|---|
| Interrupt handler | No | 
| Signal handler | No | 
| Thread | No | 
PhDim_t, PhPoint_t, PhRect_t, PpContinueJob(), PpCreatePC(), PpEndJob(), PpGetCanvas(), PpLoadDefaultPrinter(), PpLoadPrinter(), PpPrintContext_t, PpPrintNewPage(), PpReleasePC(), PpPrintWidget(), PpSetCanvas(), PpSetPC(), PpSuspendJob()
Printing in the Photon Programmer's Guide
![]()  | 
![]()  | 
![]()  | 
![]()  |