Hi there, It turns out the IO sample project in the AE SDK wasn't demonstrating this setting and getting of AEIO_OutSpecH very well. I've made a few modifications, and can now get the data in AEIO_OutSpecH to persist from the AEIO_InitOutputSpec() call to AEIO_UserOptionsDialog(), which proves that it can work. In My_InitOutputSpec(), part of the problem in the sample is that PretendToReadFileHeader() is called before AEGP_LockMemHandle(). Instead, AEGP_LockMemHandle should be called first, followed by PretendToReadFileHeader(). This is so the file information will be read into the memory referenced by the handle, and then the handle will be set as the OutSpec. Next, in My_UserOptionsDialog(), you can replace the body with this: A_Err err = A_Err_NONE; AEGP_SuiteHandler suites(basic_dataP->pica_basicP); AEIO_Handle optionsH = NULL; IO_FileHeader *fileP; ERR(suites.IOOutSuite4()->AEGP_GetOutSpecOptionsHandle(outH, reinterpret_cast<void**>(&optionsH))); if (!err){ ERR(suites.MemorySuite1()->AEGP_LockMemHandle(optionsH, reinterpret_cast<void**>(&fileP))); basic_dataP->msg_func(1, "Add your user options dialog here by\rimplementing the My_UserOptionsDialog function\rand then saving the results to the output spec."); ERR(suites.MemorySuite1()->AEGP_UnlockMemHandle(optionsH)); } return err; This will unpack the AEIO_OutputSpecH into the IO_FileHeader structure, and you can verify in the debugger that the values set in My_InitOutputSpec() do persist to My_UserOptionsDialog(). Hope this helps.
... View more