Word late binding remove hidden text

J

Jron

Hello,

I want to remove the hidden text from a Word document and i have to
use late binding.
Tried early binding but that caused errors in Office 2007 (some error
about trying to write to protected memory).

So now I'm trying to do the same thing with late binding. I have no
problem opening the Word document and even
the Find works properly but when I try to remove hidden text it does
not seem to work.

Early binding code:

bool bShowHidden = wApp.ActiveWindow.View.ShowHiddenText;
wApp.ActiveWindow.View.ShowHiddenText = true;

Word.Find findObject = wApp.Selection.Find;

findObject.ClearFormatting();
findObject.Font.Hidden = 1;
findObject.Replacement.ClearFormatting();
findObject.Text = "";
findObject.Replacement.Text = "";
findObject.Forward = true;
findObject.Wrap = Word.WdFindWrap.wdFindContinue;
findObject.Format = true;
findObject.MatchCase = false;
findObject.MatchWholeWord = false;
findObject.MatchWildcards = false;
findObject.MatchSoundsLike = false;
findObject.MatchAllWordForms = false;

object replaceAll = Word.WdReplace.wdReplaceAll;
findObject.Execute(ref missing, ref missing, ref missing,
ref missing, ref missing,
ref missing, ref missing, ref missing,
ref missing, ref missing,
ref replaceAll, ref missing, ref
missing, ref missing, ref missing);

foreach (Microsoft.Office.Interop.Word.Table myTable in
wApp.ActiveDocument.Tables)
{
if ((myTable.Range.Font.Hidden == 1) ||
(myTable.Range.Font.Hidden == -1))
{
myTable.Delete();
}
}

wApp.ActiveWindow.View.ShowHiddenText = bShowHidden;

late binding code:

Object ActiveWindow = wApp.GetType().InvokeMember("ActiveWindow",
System.Reflection.BindingFlags.Default |

System.Reflection.BindingFlags.GetProperty, null, wApp, null);
Object View = ActiveWindow.GetType().InvokeMember("View",
System.Reflection.BindingFlags.GetProperty, null, ActiveWindow, null);

Object[] ShowHiddenTextParameter = new Object[1];
ShowHiddenTextParameter[0] = true;

Object ShowHidden = View.GetType().InvokeMember("ShowHiddenText",
System.Reflection.BindingFlags.GetProperty, null, View, null);
View.GetType().InvokeMember("ShowHiddenText",
System.Reflection.BindingFlags.SetProperty, null, View,
ShowHiddenTextParameter);

Object Selection = ActiveWindow.GetType
().InvokeMember("Selection",
System.Reflection.BindingFlags.GetProperty, null, ActiveWindow, null);
Object Find = Selection.GetType().InvokeMember
("Find", System.Reflection.BindingFlags.GetProperty, null, Selection,
null);

Find.GetType().InvokeMember("ClearFormatting",
System.Reflection.BindingFlags.InvokeMethod, null, Find, null);

Object Font = Find.GetType().InvokeMember
("Font", System.Reflection.BindingFlags.GetProperty, null, Find,
null);

Object[] FontParameter = new Object[1];
FontParameter[0] = 1;
Font.GetType().InvokeMember("Hidden",
System.Reflection.BindingFlags.SetProperty, null, Font,
FontParameter);

Object Hidden = Font.GetType().InvokeMember
("Hidden", System.Reflection.BindingFlags.GetProperty, null, Font,
null);

Object Replacement = Find.GetType
().InvokeMember("Replacement",
System.Reflection.BindingFlags.GetProperty, null, Find, null);
Replacement.GetType().InvokeMember
("ClearFormatting", System.Reflection.BindingFlags.InvokeMethod, null,
Replacement, null);

object[] _parameters;
_parameters = new object[15];
_parameters[0] = "";
_parameters[1] = false;
_parameters[2] = false;
_parameters[3] = false;
_parameters[4] = false;
_parameters[5] = false;
_parameters[6] = true;
_parameters[7] =
Word.WdFindWrap.wdFindContinue;
_parameters[8] = false;
_parameters[9] = "";
_parameters[10] = Word.WdReplace.wdReplaceAll;
_parameters[11] = false;
_parameters[12] = false;
_parameters[13] = false;
_parameters[14] = false;



Find.GetType().InvokeMember("Execute",
System.Reflection.BindingFlags.InvokeMethod, null, Find,
_parameters);

Object[] ShowHiddenTextParameter2 = new Object
[1];
ShowHiddenTextParameter2[0] = ShowHidden;
View.GetType().InvokeMember("ShowHiddenText",
System.Reflection.BindingFlags.SetProperty, null, View,
ShowHiddenTextParameter2);

So what am i doing wrong here? If i just find in a word in the search
it works but I want to remove the hidden text.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top