Copy link to clipboard
Copied
Hi,
I have a class derived from CResponder and I have overridden the Respond method.
When saving an indd file the method is getting called with the servide ID 3602, but when an idml file is saved the Respond method is getting called with the service ID 3599 -
(kAfterOpenDocSignalResponderService). Due to this I am unable to identify that it is actually trying to save an idml file. Any idea why this is hapenning?
Thank you so much!
Copy link to clipboard
Copied
Interesting, did you try using a observer, that might help. Also, can you share your responder code for testing.
-Manan
Copy link to clipboard
Copied
You don't save an IDML file, you export it. On export in background, the document is internally cloned, the clone is opened in a separate thread and the export works from that clone. You probably see the open document signal from that opening the clone.
If you want to detect the IDML export, watch out for kBeforeExportSignalResponderService where the signal is a kExportProviderSignalMgrBoss, most relevant data is in IID_IEXPORTPROVIDERSIGNALDATA.
Copy link to clipboard
Copied
Did the responses here solve your issue?
Copy link to clipboard
Copied
Hi, I was looking for an answer to find a solution for a bug in my software. I could not really test this, because I could not recreate the original issue any more. Suddenly everything started worked fine. Thanks everyone for your input.
Copy link to clipboard
Copied
Hi @Chamari_Silva,
So what exactly do you see now? Is there any difference in terms of the signal ID recieved when you save an IDML vs an INDD file? Enlighten us with your findings, afterall this is a public forum, you give some you take some. You asked a question we made some suggestions, now you should(your time permitting ofcourse) ideally give us some information on what worked, what did not, so that this post holds some value for the next person who comes looking.
-Manan
Copy link to clipboard
Copied
Hi Manan,
The ID recieved is still same. The problem I had was that when saving as IDML a readwrite function of some class recieves IPMStream which always returns IsReading() true. So it did not save the information that I needed. I thought the issue might be that CResponder recieving kAfterOpenDocSignalResponderService when I try to save the file. But after few days it started working fine and I did not do any changes to the code to solve this particular issue (But I did some other bug fixes, may be that was the reason). Anyway I could not test with the given suggestion as the problem is already solved and I could not find out yet how exactly the problem got solved