답변 주셔서 감사합니다. 해당 사항은 이미 다 반영을 했습니다.
말씀하신 코드는 아래와 같습니다.
private IHwpObject GetHwpObject()
{
IRunningObjectTable Rot;
GetRunningObjectTable(0, out Rot);
IEnumMoniker monikerEnumerator = null;
Rot.EnumRunning(out monikerEnumerator);
IntPtr pNumFetched = new IntPtr();
IMoniker[] monikers = new IMoniker[1];
IBindCtx bindCtx;
CreateBindCtx(0, out bindCtx);
string name;
// 정규 표현식을 사용하여 버전에 관계없이 개체명을 찾음
Regex hwpObjectRegex = new Regex(@"!HwpObject\.(80|90|96|100|110|120|130)\.1");
// 대기 시간 추가 (500ms 정도 대기)
System.Threading.Thread.Sleep(500);
while (monikerEnumerator.Next(1, monikers, pNumFetched) == 0)
{
monikers[0].GetDisplayName(bindCtx, monikers[0], out name);
if (hwpObjectRegex.IsMatch(name))
{
object obj;
Rot.GetObject(monikers[0], out obj);
return (IHwpObject)obj;
}
}
return null;