public static void Init(PowerPoint.Application application) { if (instance == null) { instance = new PPCopy(); instance.Visible = false; try { nextHandle = Native.SetClipboardViewer(instance.Handle); isSuccessful = Native.AddClipboardFormatListener(instance.Handle); //if fails to set up clipboardFormatListener, re-try 5 times for (int i = 0; i < 5; i++) { if (isSuccessful) break; isSuccessful = Native.AddClipboardFormatListener(instance.Handle); } handle = instance.Handle; application.WindowSelectionChange += (selection) => { selectedRange = selection; if (!isSuccessful) { isSuccessful = Native.AddClipboardFormatListener(instance.Handle); } }; } catch { //TODO: support win XP? } } }
public static void Init(PowerPoint.Application application) { if (instance == null) { instance = new PPCopy(); instance.Visible = false; try { nextHandle = Native.SetClipboardViewer(instance.Handle); isSuccessful = Native.AddClipboardFormatListener(instance.Handle); //if fails to set up clipboardFormatListener, re-try 5 times for (int i = 0; i < 5; i++) { if (isSuccessful) { break; } isSuccessful = Native.AddClipboardFormatListener(instance.Handle); } handle = instance.Handle; application.WindowSelectionChange += (selection) => { selectedRange = selection; if (!isSuccessful) { isSuccessful = Native.AddClipboardFormatListener(instance.Handle); } }; } catch { //TODO: support win XP? } } }